我在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);
答案 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);