1

誰が私が間違っているのか教えてもらえますか?

http://jsfiddle.net/zsVpt/

var loadingDOM = $('.loading');

//when i want to use the stored DOM, it simply doesn't work and don't give any errors at all !!!
Template.search.events({
    'keyup .searchField' : function(event, template){
        loadingDOM.css('display','inline');
        //etc.
     }
});


//this one works
Template.search.events({
    'keyup .searchField' : function(event, template){
        $('.loading').css('display','inline');
        //etc.
     }
});

dom を取得して変数 ( performance ) に格納し、流星イベント スコープで使用するのは簡単です。

保存されたDOMを使用すると、エラーが発生せずに機能しません! JQueryを使用してDOMを直接取得することはできますが。

http://www.youtube.com/watch?v=JP9zwE02tk4

4

1 に答える 1

4

loadingDOM次のように、レンダリングされたコールバックでキャッシュしてみてください。

Template.search.rendered = function() {
    this.loading = this.find('.loading'); 
}

Template.search.events({
  'keyup input' : function(e, t){
     $(t.loading).css('display', 'inline'); 
   }
});

テンプレートがレンダリングされる前に、読み込み中の dom 要素をキャッシュしようとしていると思います。テンプレートがレンダリングされた後にテンプレート オブジェクトにキャッシュすることで、同じテンプレート内で作業している限り、テンプレートにアクセスできます。

于 2012-11-30T06:48:52.423 に答える