我有一个图像库,其中图像和图像下的上一个/下一个链接使用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>
我猜这与那些应该禁用默认值的元素有关,这些元素应该用AJAX重新加载,但如果是这样的话,有没有办法绕过它。如果不是这样的话,有人知道我做错了吗?
感谢。
答案 0 :(得分:5)
当您的元素被替换时,您的点击处理程序会被删除。您可以通过使用事件委派来克服此问题。我建议使用.delegate
:
$('#attachment-body').delegate("a", "click", function(e){
e.preventDefault();
});
答案 1 :(得分:1)
ajax请求是否添加了新的DOM元素?如果是这样,你可以试试这个:
$('#attachment-body a').live("click", function(e){
e.preventDefault();
});