由同一元素的后缀触发 class

Trigger by suffix from same element class

我想让每个带有后缀 class -dummy 的按钮(我们称它为 "dummy")来触发另一个具有相同 class 但没有该后缀的按钮(称之为 "real button").

<button class="btn-submit hidden"><button class="btn-submit-dummy">

触发

<button class="btn-edit hidden"><button class="btn-edit-dummy">

触发

<button class="btn-delete"> 什么都没有触发,因为没有带有 class btn-delete-dummy

的元素

每个真实按钮都需要通过点击虚拟按钮来触发。

到目前为止我的脚本:

/** If I define manually on each button **/
$(".btn-submit-dummy").click(function() {
    $(".btn-submit").trigger("click");
});
$(".btn-edit-dummy").click(function() {
    $(".btn-edit").trigger("click");
});
...
...
...
/** end of defining button **/

我的想法如果用 jQuery 和人类语言(很抱歉这种丑陋的方式)写成如下:

$("button[class$='-dummy']").click(function() {
    var realButton = button_which_have_same_class_as_clicked_object_but_trimmed_with_"-dummy";
    if(find realButton) {
        $(realButton).trigger("click");
    }
});

请帮忙。非常感谢。

试试这个:

$("[class$='-dummy']").on('click', function () {
    var btnClass = $(this).attr('class').match(/([\w-]+-dummy)+/)[0].replace('-dummy', '');

    alert(btnClass);
    $("." + btnClass).trigger("click");
});

演示:https://jsfiddle.net/tusharj/gc3d5yy5/

希望对您有所帮助

您可以通过

调用点击事件
$("[class$=-dummy]").on('click',function(e){
   var a = ($(this).attr('class');
   var fire = a.replace('-dummy"','');
   $('.'+fire).trigger('click');
});