Ajax影响Ajax表单上的jQuery文档加载



我在Drupal视图中有以下影响取消预订的jquery,它非常有效。

jQuery(document).ready(function(){
    jQuery(".bookingstatus:contains('Cancelled')").css("color","red");
});

但是,drupal视图使用自动提交复选框来加载基于所选年份的预订,在ajax显示中,当用户提交更改并且ajax加载新表单时,jquery将不再使用。不过,这是有道理的,因为(document).ready只会在用户进入页面时触发一次,而不是在每次ajax请求时触发。

更新:

这就是我目前使用的,没有更多错误,颜色在第一页加载时显示,就像以前一样,但在单击ajax后颜色仍然没有改变。

(function ($) {
    $.post("/", $("#views-exposed-form-bookings-block").serialize(), function() {
        $(".bookingstatus:contains('Cancelled')").css("color","red");
        $(".bookingstatus:contains('Full Amount Paid')").css("color","green");
        $(".bookingstatus:contains('Deposit Paid')").css("color","blue");
    });
})(jQuery);

.delegate.on仅帮助绑定事件;您没有试图绑定任何事件。您应该使用ajax提交成功或完成回调。

$.post("act.php", $(theform).serialize(), function() {
    $(".bookingstatus:contains('Cancelled')").css("color","red");
});

感谢@Kevin B的帮助,但问题出在Drupal&查看Ajax行为。

将jquery粘贴到行为中可以修复它。

(function($) {
Drupal.behaviors.myBehavior = {
  attach: function (context, settings) {
        $(".bookingstatus:contains('Cancelled')").css("color","red");
        $(".bookingstatus:contains('Full Amount Paid')").css("color","green");
        $(".bookingstatus:contains('Deposit Paid')").css("color","blue");
  }
};
})(jQuery);

最新更新