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

时间:2014-04-29 17:30:03

标签: javascript jquery ajax

我在Drupal视图中有以下jquery影响已取消的预订,效果很好。

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

但是,drupal视图使用自动提交复选框来加载基于所选年份的预订,在ajax显示中,当用户提交更改并且ajax加载新表单时,不再使用jquery。这是有道理的,因为(文档).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);

2 个答案:

答案 0 :(得分:2)

.delegate.on仅对绑定事件有所帮助;你并没有试图绑定任何事件。您应该使用ajax-submit成功或完整回调。

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

答案 1 :(得分:1)

感谢@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);