0

EmployeeIdは、一連のオプションを持つselect要素のIDです。このアプローチは機能しません。

var tar = document.getElementById("EmployeeId");
$(tar).live("click", function(){
 console.log("Changed");
});

ただし、このアプローチは次のことを行います。

$("#EmployeeId").live("click", function(){
 console.log("Changed");
});

$("#EmployeeId")との違いは何$(tar)ですか?両者に違いはないという印象を受けました。また、やってみると

console.log($(tar));
console.log($("#EmployeeId"));

同じものがコンソールに送信されます。

何が欠けているのか、何が違うのか、なぜ1つのアプローチでイベントハンドラーをアタッチしないのですか?

4

1 に答える 1

2

.liveイベントハンドラーをバインドしてから、イベントdocumentのオリジン(またはパス内の任意の要素)がセレクターと一致するかどうかをテストするため、動作するセレクターが必要です。

セレクターが提供されていない場合、機能しません。そのため、メソッドの連鎖も$('foo').children().live(..)機能しません。

jQuery 1.7 以降、ドキュメントhttp://api.jquery.com/live/.liveに記載されているさまざまな理由により非推奨になっています。

代替案は.on(1.7) と.delegate(1.4.2) です。

于 2012-07-30T23:19:21.413 に答える