2017-05-12 12 views
0

範囲外の要素に問題がありますが、エラーが発生していないため、修正方法がわかりません。私は関連性のあるものを含めるために私のコードを縮小しました。要素は範囲外ですか?

(function(){ 

     var zdf = { 
      theme : $('#zdf_theme') 
     }; 


     zdf.setupPopup = function(){ 
     zdf.loadThemes(); 
     } 

     zdf.loadThemes = function() { 

     zdf.theme 
       .editableSelect({ 
        effects: 'slide' 
       }) 
       .on('select.editable-select', function(e, li) { 
        zdf.theme.attr("data-value", li.attr('value')); 
       }); 

    }); 
} 
}(); 

うまくいけば、私は問題を特定するのに十分なコードを提供してきましたが、基本的にすべてがライン

zdf.theme.attr("data-value", li.attr('value'));

まで働いているオブジェクトにzdf.theme

を選択していないようです私はそれを実際のセレクタ$('#zdf_theme')と交換すると問題なく動作します。

編集可能な選択は、このコードベースは、任意の入力は素晴らしいことだhttps://github.com/indrimuska/jquery-editable-select

です!

+0

loadThemes関数の中で 'console.log(zdf.theme)'を実行すると、何が表示されますか? 'zdf.theme'の代わりに' this.theme'を使うこともできます –

+0

.onハンドラの中で 'zdf.theme'の代わりに' $(this) 'を使うことができるのだろうかと思います。 – James

+0

範囲は問題ありません。 .attr()を.prop()に変更してみてください。私はそれが空の属性の問題かもしれないと思う。 attr()とprop()の詳細は、http://stackoverflow.com/questions/5874652/prop-vs-attrを参照してください。また、.data( 'value')を使用することもできます。 –

答えて

0

解決策...編集可能な選択が入力を置き換えていたので、編集可能な選択を初期化した後に再定義する必要がありました。