javascript
  • jquery
  • checkbox
  • event-handling
  • 2014-01-10 82 views 0 likes 
    0

    我有一組複選框,我試圖分配每個項目的點擊處理程序。產生的複選框,一個循環中的代碼是:爲什麼我的jQuery點擊處理程序不能處理生命跡象?

    if (is_unique) 
         { 
         entry += '<span class="unique">'; 
         entry += '<input type="checkbox" title="Mark this event as complete." class="hide-instance" id="hide-instance-' + element.id + '-' + element.regular_expression.replace(/ /g, '-').replace(/\./g, '_') + '">&nbsp;'; 
         } 
    

    旨在分配點擊左撇子的代碼開始:

    (function(matches_date, element) 
         { 
         var identifier = ('hide-instance-' + element.id + '-' + 
         element.regular_expression.replace(/ /g, '-').replace(/\./g, '_')); 
         console.log("Marking 1: " + identifier); 
         console.log("Marking 2: " + element.id); 
         console.log("Marking 3: " + matches_date.toDateString()); 
         console.log("Marking 4: " + jQuery('#' + identifier).length); 
         jQuery('#' + identifier).click(function(event) 
         { 
         console.log("Reached here!"); 
    

    我的Chrome瀏覽日誌具有「標記」 1-4行,第四個輸出1,我看到我期望在一個複選框生成的HTML。但是,我從來沒有看到「到達這裏!」在我的日誌輸出中,並且日誌輸出不會打印任何嚴重錯誤。

    我可以給些什麼樣的診斷來幫助解決這個問題?

    +1

    嘗試更換'的jQuery( '#' +標識符)。點擊(函數(){'與['jQuery的(文件)。在( '點擊' ,'#'+ identifier,function(){'](http://api.jquery.com/on)來爲動態創建的元素提供事件委託。更好的是,使用'.hide-instance'類來代替ID。 – Blazemonger

    +0

    事件處理程序函數是否在'is_unique'條件之前運行?如果是這樣,您將需要事件代理。 – adeneo

    +0

    代表似乎沒有問題,因爲第4個標記日誌顯示至少有1個如果委託確實修復了它,那麼這個問題更有可能是重複的id。 –

    回答

    0

    因爲它是一個複選框使用的變化,而不是點擊事件

    +0

    適用於我:http://jsfiddle.net/mgp2D/ –

    +0

    實際上......我只是希望它作爲一個建議...因爲我不明白爲什麼點擊將無法工作,如果長度標記4是1 .. ..除此之外,頁面上還有其他元素具有相同的id,並且生成的id無效。因此其他元素實際上是通過單擊進行註冊的。 – CodeHacker

    相關問題