在多个按钮中调用相同的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(){ }); });