关于动态加载内容的jquery事件

时间:2014-03-19 10:40:20

标签: jquery events listeners

我正在尝试在某些动态加载的内容上添加点击事件,我有这个:

        $("#dailyCount table thead th").each(function(){
        var yd = "#" + $(this).attr("id");
        $(document).on("click", yd, function(){
            alert("a");
        });

    });

元素ID从1到当月的最后一天。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

不是为每个元素添加委托处理程序,而是可以将一个委托用于从选择器返回的所有元素。

所以试试:

$(document).on("click", "#dailyCount table thead th", function(){
    alert("a");
});

演示:http://jsfiddle.net/agLBm/

答案 1 :(得分:0)

尝试使用动态检索的id委托事件与尝试将事件附加到动态元素本身相同。

因此,要么将ur代码放在document.ready函数中,要么硬编码动态元素的id。

答案 2 :(得分:0)

试试这个:

$(document).on("click", "#dailyCount table thead th", function(){
    alert("a");
});

虽然,如果我是你,我会选择使用DOM来远离DOM。只需在表格中的TH元素中添加一些类,然后选择“

。”
<div id="dailyCount">
    <table>
        <thead>
            <th class="dailyCount-table-headCell">Whatever</th>
        </thead>
    </table>
</div>

$(document).on("click", ".dailyCount-table-headCell", function () {
    console.log("a");
});

它允许您在不更改JS的情况下更改标记。好像你需要做网格而不是表格。

答案 3 :(得分:0)

假设您将在代码中进一步使用id,请尝试:

$("#dailyCount table thead th").on("click", function(){
 var id = $(this).attr('id'); // id will now have the id of clicked element.
 alert("a");
});

希望这有帮助。