我有一組複選框,我試圖分配每個項目的點擊處理程序。產生的複選框,一個循環中的代碼是:爲什麼我的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, '_') + '"> ';
}
旨在分配點擊左撇子的代碼開始:
(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。但是,我從來沒有看到「到達這裏!」在我的日誌輸出中,並且日誌輸出不會打印任何嚴重錯誤。
我可以給些什麼樣的診斷來幫助解決這個問題?
嘗試更換'的jQuery( '#' +標識符)。點擊(函數(){'與['jQuery的(文件)。在( '點擊' ,'#'+ identifier,function(){'](http://api.jquery.com/on)來爲動態創建的元素提供事件委託。更好的是,使用'.hide-instance'類來代替ID。 – Blazemonger
事件處理程序函數是否在'is_unique'條件之前運行?如果是這樣,您將需要事件代理。 – adeneo
代表似乎沒有問題,因爲第4個標記日誌顯示至少有1個如果委託確實修復了它,那麼這個問題更有可能是重複的id。 –