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