javascript - 事件触发 ajax 后运行 jQuery

标签 javascript jquery ajax

我有以下代码:

$(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();

   });
});

我不确定为什么它不起作用。

最佳答案

您可能需要跟踪单击了哪个项目,然后使用该项目隐藏在 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,它就可以工作。

关于javascript - 事件触发 ajax 后运行 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32173280/

相关文章:

javascript - 从 javascript 与正在运行的 python 进行通信的正确方法

javascript - 某些带括号的字符串会导致 Ajax POST 操作失败并出现 403 错误(禁止)

javascript - 多页面站点中 jQueryMobile/jQuery 的问题

javascript - 如何循环遍历 hl7 消息中的所有标题?

javascript - 获取父元素以外的元素的偏移量?

javascript - 如果选中了 2 个特定的复选框,则显示一个 div,如果选中了 1 个复选框,则显示另一个(如果选中了 2 个复选框,则不显示它)

jquery - 查询DOM元素+字符串

php - 数据表按钮导出未显示在 adminLTE/Bootstrap 中

c# - 对 async Task<string> 的 AJAX 调用成功命中该方法,但返回失败

ajax - 在 laravel 中使用 ajax 将数据发送到 Controller