0

我有一个带有照片库的页面http://dev.dolina-imeniy.ru/fotogalereya/kp_usadba_tishnevo/ 我用它来绑定点击事件并将其返回 false

$('a.link_photo').click(function(e) {
var new_img = $(this).attr('href');
var photo_title = $(this).attr('title');
var photo_info = $('.photo_info', this).html();
$('#photo_view img').attr({
    src : new_img
});
$('#photo_title').html(photo_title);
$('#photo_info').html(photo_info);
return false;
    });

但在某些图像上它不起作用!为什么会出现?

尝试在我的示例中单击 10 个图像 (ut-1-foto.jpg) 来查看它。

4

4 回答 4

3

由于某种原因,您的代码正在中断,因此无法返回 false。

您可以使用e.preventDefault();来停止默认操作

e.preventDefault();
于 2012-04-10T23:56:09.123 回答
2

尝试调用 e.preventDefault()

欲了解更多信息,请看这里: http ://api.jquery.com/event.preventDefault/

于 2012-04-10T23:59:19.750 回答
2

这样做的原因是该函数仅绑定到调用时已经存在的元素。在文档加载后创建的每个链接都不会绑定到此函数。要监听这些元素的创建并将函数绑定到它们,您可以使用 jQuery 插件liveQuery。我希望这会有所帮助。

于 2012-04-11T00:13:25.607 回答
1

我不认为return false;event.preventDefault()与它有任何关系。我猜这与你的轮播的工作方式有关。一旦图像开始重复,您的代码就会中断,这并非巧合——点击事件可能不再绑定。如果元素只是被移动,事件仍应设置,但如果它被克隆或复制,则事件可能不会。

编辑:我可以通过调试确认您的脚本甚至没有在“损坏”链接上调用。

于 2012-04-11T00:02:20.653 回答