如何从一个按钮/一个href链接调用多个onclick事件?

时间:2013-03-14 15:04:24

标签: javascript jquery onclick smarty

我有以下代码:

<input id="unassignButton" class="unassignButton" type="button" value="[[Unassign]]" onclick="javscript:unassignImage({$file.sid},{$listing_sid});"/>

在最终代码中,可能会生成多个类似的输入{$file.sid},{$listing_sid}

所以我可以,例如:

<input class="unassignButton" type="button" value="Unassign" onclick="javscript:unassignImage(1533,185);">
<input class="unassignButton" type="button" value="Unassign" onclick="javscript:unassignImage(1558,290);">

现在我想创建一个链接,该链接将逐个调用具有unassignButton ID的所有输入的“onclick”函数javscript:unassignImage,并将正确的参数视为unassignImage(1558,290)...

我该怎么做?

提前致谢, Arky

2 个答案:

答案 0 :(得分:5)

$("#unassignAll").on('click', function () {
    $(".unassignButton").trigger('click');
});

这将同时调用绑定到所有取消分配按钮的click回调。

答案 1 :(得分:1)

您可能最好在javascript中分配点击处理程序而不是标记。另外 - 请确保您没有为每个按钮指定相同的ID unassignButton,因为ID应该始终是唯一的,而类可以共享:

包含数据属性的标记:

<input id="{someUniqueId}" class="unassignButton" type="button" value="[[Unassign]]" data-fileSid="{$file.sid}" data-listingSid="{$listing_sid}"/>

javascript:

$(document).ready(function(){
    // bind click handler to each button using the data attributes above
    $('input.unassignButton').on('click', function(){
        unassignImage($(this).data('fileSid'),$(this).data('listingSid'));
    });

    // bind click handler to 'unassignAll' button/link (assumes you have a button with class 'unassignAll'
    $('input.unassignAll').on('click', function(){
        $('input.unassignButton').trigger('click');
    });
});

有关数据属性的详细信息,请参阅the Jquery docs on .data()

相关问题