如何触发事件处理程序后,AJAX内容已加载的JQuery(How to fire event han

2019-10-19 06:18发布

我试图使用AJAX请求一些信息加载到使用JQuery表。 我可以很容易地加载内容,但我有添加事件处理的问题上加载的内容应用样式。

我申请一个条带化部件表。 然而,当我的AJAX请求回来,我的信息被附加到表体它没有应用该样式。

jQuery的教程提到使用load事件来处理这个问题,但我不能得到它的工作。

任何帮助,将不胜感激。

$(document).ready(function(){
    $("#cowTable").tablesorter();
    addTableStriping();
});

function addTableStriping(){
    $("#cowTable").tablesorter({
        // striping looking
        widgets: ['zebra']  
    });
};

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
        });
    });
});

Answer 1:

我发现了一个解决方案。 您需要在更新后触发“applyWidgets”。 感谢大家从所有的帮助,我就不会没有你的帮助发现了这一点。

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable").append(xml);
            $("#cowTable").trigger("update");
            $("#cowTable").trigger("applyWidgets")
        });
    });
});


Answer 2:

你可能会想尝试的liveQuery插件

实况查询通过结合事件或解雇的回调匹配的元素自动神奇,即使在页面已经被加载和DOM更新利用jQuery选择的权力。



Answer 3:

这是你应该做的:

发现它的上的tablesorter网站 。

长期和短期的是,你应该调用$( "#cowTable" ).trigger( "update" ); 追加后的数据。



Answer 4:

为什么不把它在AJAX回调?

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
            addTableStriping(); // <-- here
        });
    });
});


Answer 5:

这应该做到这一点..

$(function(){
    $("#loadCowsButton").click(function(){
        $.post("loadCows.php", "scottm", function(xml) {
            $("#cowTable tbody").append(xml);
            $("#cowTable").trigger( "update" );
        });
    });
});


文章来源: How to fire event handlers after AJAX content has loaded in JQuery