.preventDefault()仅在第一次点击时工作

Dav*_*ard 1 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();
});
Run Code Online (Sandbox Code Playgroud)

以下是其中一个链接的示例 -

<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>
Run Code Online (Sandbox Code Playgroud)

我猜这与那些应该禁用其默认值的元素有关,因为AJAX会重新加载,但如果是这样的话,有没有办法绕过它.如果不是这样,有人知道我做错了什么吗?

谢谢.

kar*_*m79 5

当您的元素被替换时,您的点击处理程序会被删除.您可以通过使用事件委派来克服此问题.我建议使用.delegate:

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

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