2014-11-24 57 views
0

我動態地將一個錨點標籤列表添加到ID爲join的div中。出於某種原因,我的jQuery處理程序(它是一個處理程序?)不處理點擊。jQuery點擊不工作/註冊

$(document).ready(function() { 
    $("#join").click(function() { 
     console.log("Clicked"); 
    }); 
}); 

「Clicked」沒有出現在我的控制檯中。 Google搜索了大約2個小時後,我現在頭痛很大。

在此先感謝。

+0

你能添加你的html文件嗎? – Yaje 2014-11-24 03:43:51

+0

你是否包含jQuery庫? – 2014-11-24 03:45:06

+0

是否動態創建元素'#join' ..也存在元素'#join'的多個實例 – 2014-11-24 03:46:19

回答

0

嘗試

$(document).ready(function() { 
    $(document).on.('click','#join',function() { 
     console.log("Clicked"); 
    }); 
}); 

注意:這將只檢測#join元素的第一個實例。 您可能需要使用的,而不是ID

你需要使用文件作爲選擇檢測生成的元素

+0

工作!謝謝! – user3650841 2014-11-24 04:07:08

+0

使用它可以獲取信息(如.data(「target」))嗎? $(this).data(「target」)不起作用。 – user3650841 2014-11-24 04:08:30

+0

它會。如果你使用類而不是id – Yaje 2014-11-24 04:14:54

0

當您從選擇器創建處理程序時,將處理程序添加到選擇器(和處理程序)運行時與選擇器匹配的所有元素。如果隨後添加了現在會與選擇器匹配的元素,則處理程序不會自動添加。選擇器第一次運行時,這些元素不存在。

添加新元素時,在添加新元素時添加點擊處理程序。

也強烈建議頁面中不要有多個具有相同「ID」值的元素。考慮使用一個類來指示分組。

4

您也可以嘗試這樣的,這是你可以擁有的最有效的方式類控制點擊事件。

$(document).ready(function() { 
    $("#join").on('click',function() { 
     $('#join').off('click'); 
     console.log("Clicked"); 
    }); 
});