3

当 PHP 脚本被拉入我的页面时,使用

$.ajax({
    url: "/assets/inc/user-stream-list.php",
    success: function (data) {
        $(".user-stream-list").html(data);
    }
});

它产生<a>,我目前使用

$('.col-l .feed a').click(function(e){
    e.preventDefault();
});

要停止可以单击的链接,但是在我运行.ajax()脚本后,链接变得可单击。

有没有办法在ajax运行后防止链接被点击?

4

3 回答 3

3

将事件委托click给在进行 AJAX 调用之前存在的 DOM 更高层的元素。

例如:

$(document).on('click', '.col-l .feed a', function(e){
    e.preventDefault();
});

请注意.on()具有三个参数的方法如何将事件委托给document元素,而不是将其直接绑定到尚不存在的a元素。自然地,document它与 DOM 树一样高。但是,只要您事先知道他们存在,就可以使用更亲密的父母。

于 2013-09-09T23:46:03.033 回答
2

由于 HTML 是通过 AJAX 加载的,因此如果要将事件绑定到它,则需要使用 将它们绑定到父级,on并在其上设置过滤器。

$(".user-stream-list").on('click', '.col-l .feed a', function() {
 ...
});

编辑:live已弃用。改为使用on

于 2013-09-09T23:46:25.700 回答
-1

使用带有加载图标的覆盖 div,以防止来自任何元素的点击事件...

这里有一个例子: jQuery: How can i create a simple overlay?

检查另一个示例: 如何使用 jQuery 创建“请稍候,正在加载...”动画?

于 2013-09-09T23:55:18.840 回答