【问题标题】:on jQuery .html() update, other functions stop working在 jQuery .html() 更新时,其他功能停止工作
【发布时间】:2013-12-04 16:33:46
【问题描述】:

我的网站上有某些可排序的“页面”。它们还会自动更新到数据库。

在我的li 列表排序后,会调用一个 php 页面来重新排序“页面”,然后我调用.html(data) 来更改页面上显示的页面顺序。

但是,在这样做之后,我的 javascript 中的自动更新功能停止工作。

有一个#form1 在排序发生之前工作并且.html(data) 被调用。一旦它被调用,之前的#form1 get 就会被删除并重新添加到页面中。这是它停止工作的时候。

有人知道原因吗?

我的更新脚本

$("#reportNav").sortable({
    stop : function(event, ui){
        var postData = $(this).sortable('serialize');
        var url = "saveOrder.php";
        $.ajax({
            type: "POST",
            url: url,
            data: postData,
            success: function(data) {  $('#reportContainer').html(data); },
            error: function(data) { $changesSaved.text("Could not re-order pages."); }
        });
    }
});

什么停止工作/停止被调用

var timeoutId;
$('#form1').on('input propertychange change', function() {
   clearTimeout(timeoutId);
    timeoutId = setTimeout(function() {
    // Runs 1 second (1000 ms) after the last change  
    $("#form1").submit();
   }, 1000);
 });

【问题讨论】:

    标签: javascript php jquery ajax jquery-ui-sortable


    【解决方案1】:

    可能是覆盖绑定了处理程序的元素的情况,在这种情况下您需要事件委托:

    $('#reportContainer').on('input propertychange change', '#form1', function() {
    

    【讨论】:

    • 这似乎有效!但现在我的$("#form1").submit(function(event){ 停止被调用。
    • 同样的问题,改成上面的格式,(container).on('submit', '#form1', function(e)
    • 谢谢@tymeJV 这很好用!除了我必须做function(event)
    猜你喜欢
    • 2017-12-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2017-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多