首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery on还是live?

jQuery on还是live?
EN

Stack Overflow用户
提问于 2012-05-28 18:13:00
回答 2查看 148关注 0票数 1

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

我的应用程序有赞,当dom加载后,我需要点击两次赞按钮才会改变,然后一旦我点击其他的按钮,这是可以的,但我总是必须点击一次,让应用程序几乎“唤醒”。

有没有更好的解决方案?

代码语言:javascript
复制
$(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');
        };
    }
});
EN

回答 2

Stack Overflow用户

发布于 2012-05-28 18:22:49

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

代码语言:javascript
复制
$('.mini-like').live('click', function() {...

使用

代码语言:javascript
复制
$(function() {...

要在文档就绪时附加切换事件处理程序,而不是单击

票数 1
EN

Stack Overflow用户

发布于 2012-05-28 18:17:25

代码$('.mini-like').live('click',...应该放在$(document).ready()内部

您可以使用.on代替.live。由于.on是一种新方法,而.live现在已弃用,因此您应该使用.on

更新重写的版本将是

代码语言:javascript
复制
$(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');
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10782910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档