Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript对象文本中命名多个事件的名称空间_Javascript_Jquery - Fatal编程技术网

如何在Javascript对象文本中命名多个事件的名称空间

如何在Javascript对象文本中命名多个事件的名称空间,javascript,jquery,Javascript,Jquery,我使用jQuery事件捕获rails应用程序中的事件。基本上,DOM元素上有一组事件捕获,然后调用其他函数。我想做的是为这些事件捕获提供一些名称空间,并寻找最佳方式: 我目前有(但大约有60个): 并希望类似于以下内容-基本上提供edit_项,以便我们知道在何处查找: $(document).ready(function(){ var events.edit_item= { $('.edit-item').on('click', arc.event_handler.edit_item

我使用jQuery事件捕获rails应用程序中的事件。基本上,DOM元素上有一组事件捕获,然后调用其他函数。我想做的是为这些事件捕获提供一些名称空间,并寻找最佳方式:

我目前有(但大约有60个):

并希望类似于以下内容-基本上提供edit_项,以便我们知道在何处查找:

$(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

您似乎想要

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


现在,
events.edit\u item
是表达式返回的jQuery对象。

这可能有用:

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操作。

但我认为他需要一个对象,该对象包含许多事件处理程序返回的所有对象……嗯。。。thx,所以我认为我犯了一个非常愚蠢的错误。看起来上面来自Bergi的内容是有效的,我的问题是最后的分号。所以这个答案是有效的,但如果我能问另一个问题。“编辑项目”的价值/重要性是什么;它看起来可能是“其他东西”或变量,如e或my_var?
“edit_item”
,属性名称必须是对象文本中的静态字符串值,不能使用变量。如果名称没有导致语法错误,您可能会忽略引号。我只是查看了jQuery
on()
返回的内容,但不理解它。为什么需要
on()
的返回值?@nalply:
on()
像许多其他jQuery函数一样,返回它刚刚操作过的对象,以便存储它或对其调用更多方法(“链接”)。我不知道OP在这里需要什么,这些不是事件捕获,而是冒泡,标题是misleading@vsync如果需要,可以进行编辑。老实说,有一个次要的bug导致了这个问题(尽管这是4年前的事)
var events = {};
events.edit_item = …;
// equal to
events["edit_item"] = …; // Here you could use any expression (like a variable) 
                         // instead of the string literal
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
  };
});