页面更新后的Javascript / Jquery

时间:2011-05-03 08:24:09

标签: javascript jquery html ajax tumblr

我正在制作一个Safari扩展程序,可以通过单击并按住图像轻松发布到tumblr。代码一切正常,除了,tumblr在页面上使用无限滚动功能(滚动时,使用我假设ajax将更多帖子加载到页面上)

由于某种原因,脚本无法识别加载的新帖子,并且从不调用图像点击处理程序 - 任何想法如何解决这个问题?

分机代码:

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);
});

2 个答案:

答案 0 :(得分:0)

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

另外,请记住使用.die()/。undelegate()作为oposite方法,否则你的请求会成倍增加。

答案 1 :(得分:0)

检查jQuery live 功能 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);
});