jQuery:使用live()而不是delegate()使Dropdown工作

时间:2011-08-13 07:49:23

标签: jquery delegates drop-down-menu live

我有一个相当简单的下拉列表。以下是实例:http://jsfiddle.net/K8VtB/

我正在使用的代码是:

$(document.body).delegate('.select .option', 'click' , function(e){
    e.stopPropagation();
        $(".select .option:not('.darr')").hide();
        selectedOption = $(this).parents("div.select").find(".option:first");

        $(this).siblings().show();
        selectedOption.text($(this).text()).attr("title",this.title);
});

$(document.body).delegate('.select .option:not(".darr")', 'click' , function(e){
    $(this).parents("div.select").find(".option:not('.darr')").hide();
    console.log($(this).attr('data-ajax-link')); 
});

$(document).click(function() {
    $(".select .option:not('.darr')").hide();
});

我得到了一些帮助,因为我之前从未使用过委托。

我尝试使用live()方法做同样的事情。我想知道为什么这不适合现场直播?或者我做错了什么?

这是我试过的同一个剧本。什么都行不通。 http://jsfiddle.net/K8VtB/1/

任何人都可以帮助我,告诉我在使用live()时我做错了什么?

1 个答案:

答案 0 :(得分:1)

更改

$(document).click(function() {
    $(".select .option:not('.darr')").hide();
});

$(window).click(function() {
    $(".select .option:not('.darr')").hide();
});

这里是小提琴http://jsfiddle.net/K8VtB/4/