ajaxリソースを呼び出すときによくhref='#'
のリンクを使用します。jQueryの.click()イベントを使用しているときにIEで可聴 'クリック' <a href='#'/>
私は、IEがこれらのリンクをクリックしたときに「クリック」されることに気付きました。
は、ここでの回避策だただし
$("#element")
.click(function(){return false;})
.bind("click", function(){ alert(this); });
、私はjQueryプラグインでこの機能をカプセル化しようとすると、私は成功した要素を「クリック」戻っていませんよ。
たとえば、上記の方法を使用すると、クリックされた実際のA要素が取得されます。
しかし、私はこのようなプラグインを書いた場合:
(function($){
$.fn.clickless = function(fnCallback) {
return this
.click(function(){return false;})
.bind("click", function(){
fnCallback.call();
});
}
})(jQuery);
をそして
$("#element").clickless(function(){
alert(this);
});
を呼び出して、私は私が見つけようとしている時には役立ちませんWindow
オブジェクトを取得します実際のAタグ
多分私はプラグインを間違って書いています - アイディアですか?
(function($){
$.fn.clickless = function(fnCallback) {
$.each(this, function() {
var element = $(this);
element.click(function(){return false;})
.bind("click", function(){
fnCallback();
});
});
return this;
}
})(jQuery);
Arf、コールバックで "this"を使用しているかもしれないという事実をどうやって見逃すことができましたか?あなたはこれを解決してうれしい:) –