在多个按钮中调用相同的jQuery函数

我对jQuery并不熟悉。 我有这个代码,我下载创建淡入/淡出弹出窗体。 这是代码:

 $(document).ready(function() { $('#button').click(function(e) { $('#modal').reveal({ animation: 'fade', animationspeed: 150, closeonbackgroundclick: true, dismissmodalclass: 'close' }); return false; }); });  

当单击具有id='button'的按钮时,上面的代码执行。 现在我有多个按钮,如何在所有按钮中调用此function? 我尝试将所有按钮的id设置为button但只有第一个按钮有效。 任何帮助将非常感谢。 顺便提一下,我忘记提及,在我的.php文件中我有这样的代码:

 for ($c=1;$c<=5;$c++){ echo " }; 

这个PHP代码将显示5个具有相同ID的按钮,即“按钮”。 我想要发生的是当我点击jQuery函数将执行的5个按钮中的任何一个时,它会弹出淡入/淡出forms。

第一解决方案

 function doClick(e) { $('#modal').reveal({ animation: 'fade', animationspeed: 150, closeonbackgroundclick: true, dismissmodalclass: 'close' }); return false; } $('#button1').click(doClick); $('#button2').click(doClick); 

二解决方案:

给所有涉及的按钮一个类“someClass”

  

并做

 $('.someClass').click(function(e) { ... }); 

第三种方案:

使用逗号分隔ID:

 $('#button1, #button2').click(function(e) { ... }); 

通常,最好的解决方案是第二个:它允许您在代码中添加按钮而无需修改javascript部分。 如果您动态添加其中一些按钮,您甚至可以这样做

 $(document).on('click', '.someClass', function(e) { ... }); 

ID应该是唯一的。 尝试使用类似的东西

 $('input[type="button"]') 

你上课可以按你使用的课程来调用它们,分隔id

 $(document).ready(function() { $('#button, #button1, #button2').click(function(e) { $('#modal').reveal({ animation: 'fade', animationspeed: 150, closeonbackgroundclick: true, dismissmodalclass: 'close' }); return false; }); });​ 
  

或者使用上面提到的类bt dystroy

您可以使用css类名而不是id来实现它,如下所示

  

和你的按钮的HTML

    

对按钮使用不同的ID并更改您的function,如下所示。

$(’#button1,#button2,#button3’)。click(function(e){
…..

如果你对所有按钮都使用相同的buttonid,则不需要调用所有按钮。只需使用此代码..似乎你在这段代码中使用动画….好用togglefade而不是透露

在循环中动态创建一个唯一buttonid的数组

 $button[] = '#'.$buttonid; 

在循环外部使用implode将此数组转换为逗号分隔的字符串

 $jsstring = implode(",",$button); 

现在使用php在js代码中将上面的字符串作为选择器传递,如:

 $(document).ready(function() { $('< php echo $jsstring ; ?>').click(function(){ }); });