入力(テキスト)要素の周りにスパン要素をラップするjQueryのプラグインを作成しています。フォーム要素の入力をbind()またはlive()して、親要素にクラスを追加/削除すると、バインディングは機能しません。次のことを考えてみましょう。 Google Chromeを使用して要素とコンソール出力を表示するjQueryバインドまたはライブがプラグインで期待どおりに動作しない
(function($){
$.fn.MyPlugin = function() {
var $this, $tag;
return this.each(function(){
$this = $(this);
$tag = $(document.createElement('span'));
$this.wrap($tag).bind('mouseover',function(){
$tag.addClass('hover');
});
}
})(jQuery);
は、私は私が私のシミュレートmouseoverイベントを移動すると、span要素に追加「ホバー」クラスを参照してくださいことを期待しています。しかし、何も起こりません。ホバークラスを追加した後、$ tag変数をコンソールに出力すると、コンソール出力に正しく表示されます。
私はこれが可変スコープと関係があると推測していますが、私は解決策を見つけようとして迷っています。私はこのときのリターン$this
をラップん間違っていない場合は
脇に、 'document.createElement'は必要ありません。 '$ this.wrap(" ")... – HackedByChinese
$(document.createElement())が( '')よりも速いところを読んでいます。私は今、リンクを見つけることができません... – Kevin