JQuery替换live ::`delegate`或`on`

时间:2013-06-19 13:15:06

标签: jquery jquery-on jquery-delegate

根据jQuery API描述:live在最新版本中被完全删除。但它在我们的项目中被广泛使用。例如:

$('div.collapsed').live('mouseover', function () {
        TBD.GENERAL.showLoginOther(this);

});

$(".info_bar .filter a, .pagination a").live("click", function () {
    TBD.DHTML.shadeWithLoading($(this).data('container-id'));
    $.getScript(this.href);
    return false;
});

$("form[loading-effect]").live('ajax:before', function () {
    $(this).find('.button_panels, .loading_panels').toggle();
});

.........

现在如果我想使用最新的jquery将是什么样的正确替换直播?委托还是上?

预计一点解释。提前致谢

1 个答案:

答案 0 :(得分:1)

由于.live()已被弃用,您更好以使用.on()

$('div.collapsed').on('mouseover', function () {

或者可以使用

$(document).on('mouseover','div.collapsed', function () {

由于

  1. 您不能将.live()用于可重复使用的小部件。
  2. stopPropagation()不适用于live。
  3. live()速度较慢。
  4. live()不可链接。
  5. 和.on()方法提供了附加事件处理程序所需的所有功能。