Javascript jQuery在线还是在线?

Javascript jQuery在线还是在线?,javascript,dom,jquery,Javascript,Dom,Jquery,我最近部署了一个无限滚动的应用程序,我已经建立,并发现有时我需要点击两次发生的事情 我的应用程序有喜欢的东西,加载dom后,我需要在更改之前单击两次“喜欢”按钮,然后单击其他按钮就可以了,但我总是要单击一次,应用程序才能几乎“醒来” 有更好的解决办法吗 $(document).ready(function() { function runUpdate(url, item) { $.ajax({ type: "GET", ur

我最近部署了一个无限滚动的应用程序,我已经建立,并发现有时我需要点击两次发生的事情

我的应用程序有喜欢的东西,加载dom后,我需要在更改之前单击两次“喜欢”按钮,然后单击其他按钮就可以了,但我总是要单击一次,应用程序才能几乎“醒来”

有更好的解决办法吗

$(document).ready(function() {
    function runUpdate(url, item) {
        $.ajax({
            type: "GET",
            url: url,
            cache: false,
            success: function(data){
                if (data == '200') {
                    removeAddColor(item);
                }
            }
        });
    }

    $('.mini-like').live('click', function(){
        $('.mini-like').toggle(
            function() {
                var item = $(this);
                var href = item.attr('href');
                runUpdate(href, item);
            },
            function() {
                var item = $(this);
                var rel = item.attr('rel');
                runUpdate(rel, item);
            }
        );
    });

    function removeAddColorFollow(item) {
        var href = $(this).attr('href');
        var rel = $(this).attr('rel');
        if (item.hasClass('btn-success')) {
            $(item).removeClass('btn-success').attr('href', href).attr('rel', rel);
            $(item).find('i').removeClass('icon-white');
        } else {
            $(item).addClass('btn-success').attr('href', rel).attr('rel', href);
            $(item).find('i').addClass('icon-white');
        };
    }
});
代码
$('.mini-like').live('click',…
)应该放在
$(document.ready()

您可以使用
.on
代替
.live
.As
.on
是一种新方法,
.live
现在已被弃用。您应该使用
.on

更新 重新编写的版本将是

$(document).ready(function(){
 $('.mini-like').on('click', function(){
    $('.mini-like').toggle(
        function() {
            var item = $(this);
            var href = item.attr('href');
            runUpdate(href, item);
        },
        function() {
            var item = $(this);
            var rel = item.attr('rel');
            runUpdate(rel, item);
        }
    );
 });

});

function runUpdate(url, item) {
    $.ajax({
        type: "GET",
        url: url,
        cache: false,
        success: function(data){
            if (data == '200') {
                removeAddColor(item);
            }
        }
    });
}


function removeAddColorFollow(item) {
    var href = $(this).attr('href');
    var rel = $(this).attr('rel');
    if (item.hasClass('btn-success')) {
        $(item).removeClass('btn-success').attr('href', href).attr('rel', rel);
        $(item).find('i').removeClass('icon-white');
    } else {
        $(item).addClass('btn-success').attr('href', rel).attr('rel', href);
        $(item).find('i').addClass('icon-white');
    };
}
代码
$('.mini-like').live('click',…
)应该放在
$(document.ready()

您可以使用
.on
代替
.live
.As
.on
是一种新方法,
.live
现在已被弃用。您应该使用
.on

更新 重新编写的版本将是

$(document).ready(function(){
 $('.mini-like').on('click', function(){
    $('.mini-like').toggle(
        function() {
            var item = $(this);
            var href = item.attr('href');
            runUpdate(href, item);
        },
        function() {
            var item = $(this);
            var rel = item.attr('rel');
            runUpdate(rel, item);
        }
    );
 });

});

function runUpdate(url, item) {
    $.ajax({
        type: "GET",
        url: url,
        cache: false,
        success: function(data){
            if (data == '200') {
                removeAddColor(item);
            }
        }
    });
}


function removeAddColorFollow(item) {
    var href = $(this).attr('href');
    var rel = $(this).attr('rel');
    if (item.hasClass('btn-success')) {
        $(item).removeClass('btn-success').attr('href', href).attr('rel', rel);
        $(item).find('i').removeClass('icon-white');
    } else {
        $(item).addClass('btn-success').attr('href', rel).attr('rel', href);
        $(item).find('i').addClass('icon-white');
    };
}

除非我完全错了,否则你只能在点击一次之后将切换事件附加到.mini-like。试着替换它

$('.mini-like').live('click', function() {...


要在document ready(文档就绪)而不是单击时附加切换事件处理程序,除非我完全错了,否则只能在单击一次后将切换事件附加到.mini like。尝试仅替换

$('.mini-like').live('click', function() {...


要在document ready(文档就绪)而不是click(单击)上附加切换事件处理程序,1.7中不推荐使用
live
,而赞成在上使用
,因此请在
上使用
instead@NiftyDude,你是对的。+1重写版本的.live with.on的用途是什么?看起来,我不是javascript专家…
live
在1.7有利于
上的
,因此请使用
上的
instead@NiftyDude,你是对的。+1重写版本的.live with.on的用途是什么?看起来,我不是javascript专家…你只需要将它放在
$(document.ready()中即可
如果脚本不在页面的最底部。如果您将脚本放在关闭标记之前,那么您就不需要它,因为DOM将在那时创建。@AnthonyGrist很棒,我认为这是web开发人员反复使用的常见代码之一,因为在线教程告诉他们这样做,而不是因为他们知道why@AnthonyGrist,应该避免在
之后添加脚本。这不是一种标准做法。@Imdad是否有引用?我确信公认的做法是在
之前引用外部脚本,因为浏览器无法完全解析DOM而不完成下载所有
脚本
s@Imdad这是我的城堡在yahoo dev上,您只需将其放入
$(document).ready()中
如果脚本不在页面的最底部。如果您将脚本放在关闭标记之前,那么您就不需要它,因为DOM将在那时创建。@AnthonyGrist很棒,我认为这是web开发人员反复使用的常见代码之一,因为在线教程告诉他们这样做,而不是因为他们知道why@AnthonyGrist,应该避免在
之后添加脚本。这不是一种标准做法。@Imdad是否有引用?我确信公认的做法是在
之前引用外部脚本,因为浏览器无法完全解析DOM而不完成下载所有
脚本
s@Imdad这是我的城堡关于雅虎发展