我有以下代码:
$(document).on('click', '.imageItem', function(event) {
$(this).slideUp()
});
每当点击.imageItem时,一个单独的脚本会激活Ajax(我无法控制另一个脚本)来操纵DOM。
因此.imageTable会暂时滑动并隐藏,但在其他脚本完成AJAX DOM操作后会重新出现。
我试过等到Ajax完成但这不起作用:
$(document).on('click', '.imageItem', function(event) {
$(document).ajaxComplete(function() {
$(this).slideUp();
});
});
我不确定为什么它不起作用。
答案 0 :(得分:1)
您可能需要跟踪点击了哪个项目,然后使用该项目隐藏在ajaxComplete
中:
$(document).ajaxComplete(function (event, xhr, settings) {
if (img) {
img.slideUp('slow');
img = null;
}
});
//To keep track of what item was clicked
var img = null;
$(".imageItem").on("click", function () {
img = $(this);
});
您可以在this fiddle中看到一个有效的示例,但正如@charlietfl在评论中指出的那样,如果其他脚本使用jQuery
,它就会起作用。