2012-04-10 120 views
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)在我的例子中看到它。

回答

2

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

+0

谢谢!这是工作!完美! – skywind 2012-04-11 00:21:59

3

由于某些原因,您的代码被破坏,所以它不会返回false。

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

e.preventDefault(); 
+0

它也可能是在函数完成处理之前默认执行并返回false。 – Fresheyeball 2012-04-11 00:12:34

+0

试试,但没有帮助( – skywind 2012-04-11 00:13:38

1

我不认为return false;event.preventDefault()与它有任何关系。我猜它与你的旋转木马的工作方式有关。一旦图像开始重复,代码就会中断并非巧合 - 单击事件可能不再受限制。如果元素刚刚被移动,事件仍应该被设置,但如果它被克隆或复制,事件可能不会。

编辑:我可以通过调试确认您的脚本甚至没有在'断开'链接上调用。

+0

我怎样才能永远反弹这个活动? – skywind 2012-04-11 00:14:38