0

いくつかのマウスダウンに追加live()すると、not:条件付きが機能しなくなりました。

 $("body :not(" + _self.somevar + ")").live('mousedown',
     function(event){
     event.stopPropagation();
     // some more code
 }

それがうまくいかなかったときlive()。を使用するようlive()になったので、そのアイテムをマウスダウンすると、起動すべきでないときに起動します。

not:なぜもはや守られていないのか誰もが知っていますか?

4

2 に答える 2

0

.live()メソッドをに更新できます.on()(新しいバージョンのjQueryで動作するように)。したがって、を選択するdocumentイベントに適用する必要があります。例:mousedownbody :not(#notAcceptedElement)

HTML

<div id="notAccept">Not Accept Mousedown</div>
<div id="accept">Accept Mousedown</div>

JS(jQuery 1.6):

$('body :not(#notAccept)').live('mousedown', function(ev) {
    console.log(ev.target);
    $('#accept').clone().appendTo(document.body);
});

JS(jQuery edge / 1.8):

$(document).on('mousedown', 'body :not(#notAccept)', function(ev) {
    console.log(ev.target);
    $('#accept').clone().appendTo(document.body);
});
​

実例:jsFiddle jQuery-1.6jsFiddlejQuery-edge

于 2012-06-30T03:22:20.903 に答える
0

HTMLページで使用できるbodyタグを1つだけ知っているといいのですが。あなたの場合、id/classのイベントを添付しようとするとより良いです。構文は次のようになります。

要素のIDの場合

$("#not:'+ _self.somevar'+").live('mousedown',
 function(event){
 event.stopPropagation();
 // some more code
}

要素のクラスの場合

$(".not:'+ _self.somevar'+").live('mousedown',
 function(event){
 event.stopPropagation();
 // some more code
}
于 2012-06-30T16:22:03.510 に答える