【问题标题】:Javascript/Jquery after page is updated页面更新后的 Javascript/Jquery
【发布时间】:2011-05-03 08:24:09
【问题描述】:

我正在制作一个 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);
});

【问题讨论】:

    标签: javascript jquery html ajax tumblr


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-04-14
        • 1970-01-01
        • 2019-02-12
        • 2013-08-10
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多