javascript - .preventDefault() 仅适用于第一次点击

标签 javascript ajax

我有一个图片库,其中使用 AJAX 重新填充图像和图像下的上一个/下一个链接。当用户拥有 JS(以便使用 AJAX 方法)时,我想阻止链接在此处工作,但只有在第一次加载页面时才可以工作。

这是我在页面上用于停止链接工作的代码 -

/** Prevent the default links from working when clicking on an ajax link */
$('#attachment-body a').click(function(e){
    e.preventDefault();
});

这是其中一个链接的示例 -

<a href="<?php echo get_permalink($attachment->ID); ?>" title="<?php echo $attachment->post_name; ?>" rel="attachment" onclick="set_centre_image(<?php echo $attachment->ID; ?>, <?php echo $value_for_writing; ?>)">
    <img src="<?php echo $img_src[0]; ?>" />
</a>

我猜这与应该禁用默认设置的元素有关,但如果是这种情况,是否有解决方法。如果不是这样,有人知道我做错了什么吗?

谢谢。

最佳答案

当您的元素被替换时,您的点击处理程序就会被丢弃。您可以通过使用事件委托(delegate)来解决这个问题。我建议使用 .delegate :

$('#attachment-body').delegate("a", "click", function(e){
    e.preventDefault();
});

http://api.jquery.com/delegate/

关于javascript - .preventDefault() 仅适用于第一次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926788/

相关文章:

javascript - ajax post选择器作为opencart "add to cart"按钮中的数据

javascript - 如何向动态创建的数组添加一个属性?

javascript - 假设我的访问者启用了 javascript 是否合理?

javascript - JavaScript 对象可以返回值和控制台日志吗?

Javascript 更新输入元素

javascript - 外部值变化的 jQuery slider

javascript - 为需要 N 个参数的函数传递参数数组

javascript - 如何使用ajax函数更新数据库

javascript - 使用 AJAX JSON 进行 jQuery 自动完成

php - 表达式引擎 - PHP - 无法运行函数