1

jQuery イベントを使用して、Rails アプリ全体でイベントをキャプチャしています。基本的に、一連のイベント キャプチャが DOM 要素にあり、それが他の関数を呼び出します。私がやりたいことは、これらのイベント キャプチャにいくつかの名前空間を提供し、最善の方法を探すことです。

私は現在持っています(しかし、それらの60が好きです):

$(document).ready(function(){
  $('.edit-item').on('click', arc.event_handler.edit_item);
});

そして、次のようなものが欲しいです - 基本的に edit_item を提供して、どこを見ればよいかを知っています:

$(document).ready(function(){
  var events.edit_item= {
    $('.edit-item').on('click', arc.event_handler.edit_item);
  };
});

しかし、これは私にエラーを与えています。次のような基本的なオブジェクト リテラル構文に精通しています。

var my = {
  say_my_name: function(){
    alert('my name');
  }
}

jQuery関数でそれを適用する方法がわかりません。どうすればいいですか?

これをより積極的にネームスペースするための匿名関数があることは承知していますが、正直なところ、今すぐこれを変更したいだけです

thx事前に

4

2 に答える 2

1

あなたがしたいようです

var events = {
    "edit_item": $('.edit-item').on('click', arc.event_handler.edit_item)
};

また

var events = {};
events.edit_item = …;
// equal to
events["edit_item"] = …; // Here you could use any expression (like a variable) 
                         // instead of the string literal

これevents.edit_itemが、式によって返される jQuery オブジェクトです。

于 2012-10-14T20:27:25.620 に答える
1

おそらくこれは便利です:

var events;
$(document).ready(function(){
  events = {
    edit_item: $('.edit-item').on('click', arc.event_handler.edit_item),
    other_item: $('.other-item').on(/* something else */),
    //... 
    // the last item without trailing comma
  };
});

行末のコンマに注意してください。ただし、IE は最終行の後のコンマを嫌いますので、省略してください。

events オブジェクトには jQuery オブジェクトが含まれているため、さらに多くのイベントをそれにバインドしたり、それらに対して他の jQuery 操作を実行したりできます。

于 2012-10-14T20:33:12.437 に答える