我正在使用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函数。我该怎么做?
我知道有一些匿名函数可以更加积极地命名这个名称,但老实说,现在只想改变这一点
事先提前答案 0 :(得分: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对象。
答案 1 :(得分: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操作。