如何触发为一类对象定义的单个事件

时间:2010-12-30 02:52:50

标签: javascript jquery

我有一个问题。我有8个按钮,它们具有唯一的递增ID和共享类。

<button class="btnChapter" id="btnChapter_1" value="1">1</button>
<button class="btnChapter" id="btnChapter_2" value="2">2</button>
<button class="btnChapter" id="btnChapter_3" value="3">3</button>
...

为了防止我复制代码,我将click事件绑定到btnChapter类,而不是将事件单独绑定到每个按钮的ID。

$('.btnChapter').click(function(){ .. do stuff .. });

如何仅针对#btnChapter_2触发()click()事件?以下似乎不起作用。

$('#btnChapter_2').click()

2 个答案:

答案 0 :(得分:1)

你的代码非常好。

在我看来,你唯一可能做错的事情就是在ready事件之后不执行此代码。

我还建议使用live

试试这个:

$(function() {
  $('.btnChapter').live('click', function(){ 
      //blah
  });
  //...
  $('#btnChapter_2').click();
});

答案 1 :(得分:0)

您的代码似乎没问题。您能否检查click事件是否实际绑定到button控件。

我能想到的一个原因是代码是在dom准备好之前执行的javascript,因此$('.btnChapter')选择器可能不会返回任何元素。

您可以查看点击事件绑定后不久$('.btnChapter').length返回的值。

注意:您是否可以手动点击按钮并检查事件是否被触发?

Here是我在JSFIDDLE中所做的一个示例,它适用于我。