何ですか.live()

3803 ワード

多くの開発者はjQueryを知っています.live()メソッドは、彼らの大部分がこの関数が何をしているのか知っていますが、どのように実現されているのか分からないので、そんなに快適ではありません.バインドを解除するなんて聞いたことがありませんlive()事件のdie()メソッド.よく知っていてもdie()ですか.
何ですか.live().liveの方法は.Bind()は、それ以外にDOM要素にイベントをバインドできます.DOMには存在しない要素にイベントをバインドできます.次の例を見てください.
例えば、ユーザーがリンクをクリックしているときや、サイトを離れていることをヒントにしたい場合.
$(document).ready( function() {
    $('a').click( function() {
        alert("You are now leaving this site");
        return true;
    });
});

 
注意するclick()は、より一般的な実装にすぎない.bind()の簡単な方法は,以下と上のコードが上の実装に相当する.
$(document).ready( function() {
    $('a').bind( 'click', function() {
        alert("You are now leaving this site");
        return true;
    });
});

しかし、javascriptでページにリンクを追加します.
$('body').append('<div><a href="...">Check it out!</a></div>');

しかし、ユーザーがそのリンクをクリックすると、方法は呼び出されません.そのリンクはclickイベントをページのすべての因为在笔记中打工的时候还没有存在,所以我们会使用.live()置換bind():$(document).ready( function() { $('a').live( 'click', function() { alert("You are now leaving this site"); return true; }); }); 如果把新的链接追加在页上,也可以实行。live()怎么办工作?live()的背后的不可思议的点不是选择活动的elements打工,实际上是DOM自行的希尔诺(例如$(document))打工,element就像残奥特一样传达.如果检查要素的话,click活动将在DOM系列上传达到路特诺德.これclick()イベントのトリガはすでにルートノードにある.Live制作首先检测一下克利克的标格是否看和和吗?Live()呼吁的Serector一致.因此,在上述例中,检查了清洁的要素和$('a').live()的$('a')一致,如果一致的话,就可以实行打印的方法。即使在卢特诺德内检查什嚒都能检查,卢特诺德的click()活动被拖车,把追加在卢特诺德的要素检查后,这个检查会发生.すべてlive()でもいいです.die()如果你知道bind()的话,你一定会知道.unbind().では、die()と.live()是类似的关系.为了提到上面的摩托车,我们就像这样做.$('a').die();より具体的には、hover等其他活动被打工,如果有必要保持的话,只能解除click活动打工.('a').die('click');さらに具体的には、メード名が定義されている場合には、指定されたメードを解除することができる.specialAlert = function() {   alert("You are now leaving this site");   return true; } $(document).ready( function() {   $('a').live( 'click', specialAlert );   $('a').live( 'click', someOtherFunction ); }); // then somewhere else, we could unbind only the first binding $('a').die( 'click', specialAlert ); 如果使用die()的问题这些关数的话,die()电脑有缺点.只有使用可能。在Live()梅索片中使用的要素塞雷克塔,如果可以像下一样写。$(document).ready( function() { $('a').live( 'click', function() { alert("You are now leaving this site"); return true; }); });   // it would be nice if we could then choose specific elements // to unbind, but this will do nothing $('a.no-alert').die();      .die()活动似乎一致解除了卡格特选择权.live()的摩托车,实际上是$('a.no-alert')没有摩托车,所以jquery没能删除摩托车,没有角色。而且更糟糕的事情,就像下一个东西.$(document).ready( function() {   $('a,form').live( 'click', function() {     alert("You are going to a different page");     return true;   }); }); // NEITHER of these will work $('a').die(); $('form').die(); // ONLY this will work $('a,form').die(); 修复方式die()下一篇文章,我提出一个提案.die()实行可以提供后方互换性的语调动作的新方法.也就是说,如果有时间的话,我可能会在下一个release接受我的提议后提出修正的jQuery开发团队.不是路特诺德,包括开放的context电脑在内,我希望能更多写的这些方法。如果你想得更多的信息,我可以调查jQuery.live() and .die().请同时注意的纪录。delegate()と.undelegate()可以代替使用.live()と.die()与密切相关。