2011-05-03 40 views
0

我正在制作Safari扩展程序,通过单击并保存图像,轻松发布到tumblr。代码目前工作正常,除了tumblr在其页面上使用无限滚动功能(当您滚动时,使用我假设的AJAX将更多帖子加载到页面上)更新页面后的Javascript/jquery

由于某些原因,脚本无法识别新帖子加载和图像点击处理程序是从来没有调用 - 任何想法如何解决这个问题?

扩展代码:

function confirmShare(src) { 
var answer = confirm("Add image to queue?\n"+src) 
if (answer){ 
    $('body').append('<iframe class="quickpostframedatasend" height=0 width=0 style="display:none;" src="http://1hype.me/quickpost/saveimage.php?src=' + src + '"></iframe>'); 
} 

} 



var timeoutId = 0; 

$('img').mousedown(function() { 
    src = $(this).attr("src"); 
    timeoutId = setTimeout('confirmShare(src)', 900); 
}).bind('mouseup mouseleave', function() { 
    clearTimeout(timeoutId); 
}); 

回答

0

检查了jQuery 现场功能 http://api.jquery.com/live/

$("img").live("mousedown", function() { 
    src = $(this).attr("src"); 
    timeoutId = setTimeout('confirmShare(src)', 900); 
}).live("mouseup", function() { 
    clearTimeout(timeoutId); 
}).live("mouseleave", function() { 
    clearTimeout(timeoutId); 
}); 
0

绑定仅适用于已经在DOM元素。尝试使用.live()或.delegate()http://api.jquery.com/delegate/

此外,请记住使用.die()/。undelegate()作为oposite方法,否则您的请求将会相乘。