Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 2单击一个元素上的事件,只需运行一个_Javascript_Jquery_Html_Events - Fatal编程技术网

Javascript 2单击一个元素上的事件,只需运行一个

Javascript 2单击一个元素上的事件,只需运行一个,javascript,jquery,html,events,Javascript,Jquery,Html,Events,我在一个元素(按钮)上有两个单击事件。第一个是一个默认函数,用于执行一些常规检查(可以在我的过程中的常规步骤上执行),第二个是针对我的过程中的特定步骤的特定检查 我的过程中的所有步骤都有一个下一步按钮,可以转到下一步(下一页),但是如果一个步骤需要特定的检查(字段验证),我会给它周围的一个额外的类,这样我就可以用jQuery处理它 默认步骤下一步按钮 <a class="next-button" href="http://www.example.com/to-next-step/">

我在一个元素(按钮)上有两个单击事件。第一个是一个默认函数,用于执行一些常规检查(可以在我的过程中的常规步骤上执行),第二个是针对我的过程中的特定步骤的特定检查

我的过程中的所有步骤都有一个下一步按钮,可以转到下一步(下一页),但是如果一个步骤需要特定的检查(字段验证),我会给它周围的
一个额外的类,这样我就可以用jQuery处理它

默认步骤下一步按钮

<a class="next-button" href="http://www.example.com/to-next-step/">Next step</a>
<a class="next-button specific-step" href="http://www.example.com/to-next-step/">Next step</a>
HTML:

特定步骤下一步按钮

<a class="next-button" href="http://www.example.com/to-next-step/">Next step</a>
<a class="next-button specific-step" href="http://www.example.com/to-next-step/">Next step</a>
HTML:


当我在一个有额外类的步骤上单击按钮时,两个函数都在运行。是否可以只运行“特定下一步按钮功能”?

向特定元素添加新类(例如特定步骤)

默认按钮

<a class="next-button" href="http://www.example.com/to-next-step/">Next step</a>
<a class="next-button specific-step" href="http://www.example.com/to-next-step/">Next step</a>
试试这个。“>”确保将单击功能绑定到“特定步骤”的子级


测试父级是否从附加到所有
的单一通用单击处理程序内部具有特定步骤。下一步按钮

$('.next-button').click(function() {
    if($(this).parent().hasClass('specific-step')){
         performSpecificStep();
    }
    else{
        // Do standard stuff
    }
});
另一种方法是使用,但此解决方案要求先附加“特定”处理程序,因为它们按附加顺序执行:

e、 g


jsiddle:

由于您希望为每种类型的链接提供完全独立的功能,因此我将使用不同的类来标识每种类型的链接



另一个
。下一个按钮
选择器仍将触发另一个事件。这不有用,因为第一次单击事件仍将运行。只需在一个事件中对父级进行测试,更简单的^^@Callum,无需在allOP中包含父级,可能需要父级来设置bro^^^样式,这与我在测试类时得到的结果相同,我感觉你会得到选票的。人们喜欢性感的代码布局。有投票权。但它不会仍然有效,因为。具体的步骤仍然是父母?@TrueBlueAussie抱歉,超级丑。@M K:啊,复仇否决投票。这真的很简单,很明显而且有效:)这很有趣,因为现在你唯一的选票来自我@TrueBlueAussie-hehe。喜欢更多的人仍然发布“我可以有代表吗?”如果你可以控制处理程序添加的顺序,我已经在我的答案中添加了一行替代选项(使用)
$('.specific-step > .next-button').click(function() {
   // Specific checks
});
$('.next-button').click(function() {
    if($(this).parent().hasClass('specific-step')){
         performSpecificStep();
    }
    else{
        // Do standard stuff
    }
});
$('.specific-step .next-button').click(function (e) {
    e.stopImmediatePropagation();
});
$('.next-button').click(function (e) {
});