两个不同的元素'提交和点击事件由同一个jquery函数处理?

时间:2013-06-22 10:34:56

标签: events event-handling jquery

我有一个提交按钮#next_step和一个链接#design_next_step

提交按钮或点击链接时,会触发相同的功能。

我该怎么办?

$('#next_step').submit(), $('#design_next_step').click(){function(){ ... });

6 个答案:

答案 0 :(得分:6)

您可以使用标准CSS逗号来定义组选择器:

$('#next_step, #design_next_step').on('submit click', function(){ ... });
  

提交按钮或点击链接时......

按钮未提交,只需点击即可。 submit事件与form元素相关,而非buttoninput元素。假设您显示的id个元素是按钮或链接,只需使用click事件:

$('#next_step, #design_next_step').on('click', function(){ ... });

根据您正在做的事情,您可能 - 或者可能不 - 希望阻止事件的默认操作[通过接受event参数并在其上调用preventDefault,或者通过执行处理程序中的return false将阻止默认和停止传播]。例如,链接上click的默认操作是遵循链接。

答案 1 :(得分:4)

只需让两个事件处理程序调用相同的函数F。

$('#next_step').submit(function() {
   F();
});
$('#design_next_step').click(function() {
   F();
});
var F=function() {
   . . .Write code here
}

答案 2 :(得分:2)

你可以给同一个类,链接和按钮,然后你可以尝试执行以下操作

$('.className').click(function() {
    var item = $(this); // item that triggered the event

});

如果您想基于ID进行操作,请按照

进行操作
$('#Button1, #Link1').click(function() {
    // You can use `this` to refer to the source element, for instance:
});

答案 3 :(得分:0)

我想没有办法那样做

而是尝试在事件处理程序中使用相同的函数

$('#formId').submit(function{
   execute();
});

 $('#design_next_step').click(function{
 execute();
 })

答案 4 :(得分:0)

这更合适。

$('.anchor').click(function{
   $('form').submit();
});

答案 5 :(得分:0)

可能你可以像调用普通函数一样调用它。因为在这种情况下,提交并单击执行相同的操作,当用户提交或单击链接时,他们调用函数“myFunction”

                function myFunction()
                      {
                        ..........
                      }
                $('#button').submit(myFunction);
                $('#link').click(myFunction);

                 var myFunction=function()
                    {
                       .......
                    }

                  $('#button').submit(myFunction);
                  $('#link').click(myFunction);