Javascript jQuery点击1000 div事件,优化方法?

Javascript jQuery点击1000 div事件,优化方法?,javascript,jquery,Javascript,Jquery,我正在建立一个活动门票销售系统。现在有大约1000个不同的座位供游客选择。也许有一天会达到5000英镑 现在,我为每个spot创建了一个div,然后使用jQuery使用ajax保留spot。因此,我的jQuery选择器在每个div上设置了一个click事件 有没有更好的方法 我想在按下div时触发ajax,而不是重新加载页面。使用“事件委派”,即将click事件绑定一次,不是绑定到每个div,而是绑定到1000个div周围的div。在处理程序中,您可以通过传递到处理程序中的“事件”对象检索单击的

我正在建立一个活动门票销售系统。现在有大约1000个不同的座位供游客选择。也许有一天会达到5000英镑

现在,我为每个spot创建了一个div,然后使用jQuery使用ajax保留spot。因此,我的jQuery选择器在每个div上设置了一个click事件

有没有更好的方法

我想在按下div时触发ajax,而不是重新加载页面。

使用“事件委派”,即将click事件绑定一次,不是绑定到每个div,而是绑定到1000个div周围的div。在处理程序中,您可以通过传递到处理程序中的“事件”对象检索单击的div的元素

使用:


这样,您将只生成一个管理所有div的事件。

只需使用jQuery委派方法:

$('.theater').delegate('.seat','click',function(event){
  var self = $(event.target);
  console.log(self);
  // self is the '.seat' element that has been clicked.
});

您可能需要检查此线程,以便它对您有用。从你的帖子很难说,但在这种情况下,图像地图可能是你的一个选择。

这种方法称为事件委派,正如Ash所解释的那样。 jQuery在这里有几个方法可以提供帮助。live()和更新的委托() 更准确一点


因此,您可以将一次单击事件绑定到一个元素,该元素是您感兴趣的所有div的一部分,单击这些div就会弹出要由父级捕获的DOM。在这一点上你可以做你需要做的。

你能发布一些源代码吗?如果可能的话,我们可以帮助您对此进行优化。
$(this)
在委托处理程序中工作并引用目标元素,不需要
$(event.target)
。哦,太精确了。我通常使用绑定函数(
这个
总是指我的视图对象),所以我习惯使用
$(event.target)
。谢谢!你和所有建议代表的人也一样。
$('.theater').delegate('.seat','click',function(event){
  var self = $(event.target);
  console.log(self);
  // self is the '.seat' element that has been clicked.
});