【问题标题】:jQuery: onclick method for every buttons with id starting with [duplicate]jQuery:每个按钮的onclick方法以[重复]开头
【发布时间】:2020-02-04 01:57:18
【问题描述】:

我有一组 ID 为“del1”、“del2”等的按钮。我正在尝试制作一个 onclick 函数,该函数在单击任何这些按钮时触发。所以基本上替换:

$(document).on('click', '#del1', function(e) {
    alert("For button1");
});

$(document).on('click', '#del2', function(e) {
     alert("For button2");
});

etc

具有单一功能。按钮的数量可以改变,并且按钮的数量没有限制。我该怎么做?

【问题讨论】:

标签: javascript jquery


【解决方案1】:

方法一:

$('[id^="del"]').click(function() { //ID begins with "del"
    //code here
}); 

//or

$(document).on('click', '[id^="del"]', function(e) {
     //code here
});

方法 2:为所有按钮添加一个通用类:

$('.myButton').click(function(){/*code..*/});

【讨论】:

    【解决方案2】:

    您可以为所有元素指定一个类名并为其附加一个事件处理程序

    <button data-index="1" class="button">click here</button>
    <button data-index="2" class="button">click here</button>
    <button data-index="3" class="button">click here</button>
    <button data-index="4" class="button">click here</button>
    <button data-index="5" class="button">click here</button>
    
    $(document).on('click', '.button', function(e) {
    alert("For button"+$(this).data('index'));});
    

    【讨论】:

    • 你需要分享为什么投反对票
    • 问题的想法是使用所有元素已经共有的东西来为所有元素创建一个处理程序(以部分 id 属性开头......)。在我看来,在所有元素中添加类名是一种“解决方法”,一种不处理问题要点的方法。除此之外,它还在 html 中添加了不必要的代码。
    • @CaioSant'Anna我不认为使用类是我们每天都会做的工作,我们甚至不知道 OP 是否使用 ids 因为他不知道类的使用.并且接受的答案甚至还有第二个解决方案,它使用类
    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2012-08-26
    • 2013-05-16
    相关资源
    最近更新 更多