javascript-处理顺序很重要的jQuery中的多次点击事件
作者:互联网
我正在使用ajax的php应用程序上工作.在我想让jQuery劫持链接的所有链接上,我将ajaxlink类直接添加到链接中
<a class="someclass ajaxlink" href="somelocation1">goto1</a>
<a class="someclass ajaxlink" href="somelocation2">goto2</a>
<a class="someclass ajaxlink" href="somelocation3">goto1</a>
JavaScript看起来像这样
$('.ajax-link').click(function(){get link with ajax});
如果用户启用了JavaScript,他将获得页面槽Ajax.一个特定的页面有多个页面,因此我具有为所有页面生成相同链接的相同功能.
现在我的问题是仅一页中的链接之一,我想做一些不同的事情.当ajax页面返回成功时,它必须触发另一个功能.现在我有这样的代码.
<div class"specialclass">
<a class="someclass ajaxlink" href="somelocation1">goto1</a>
<a class="someclass ajaxlink" href="somelocation2">goto2</a>
<a class="someclass ajaxlink" href="somelocation3">goto1</a>
<a class="someclass ajaxlink special-1" href="somelocation">goto</a>
<a class="someclass ajaxlink special-2" href="somelocation">goto</a>
<a class="someclass ajaxlink special-3" href="somelocation">goto</a>
</div>
$('.ajax-link').click(function(){get link with ajax});
$('.specialclass .special-1,
.specialclass .special-2,
.specialclass .special-3').click(function(){get link with ajax});
这种设置是因为我希望同一容器中的普通链接能够正常执行.我只想添加一个特殊链接来添加另一个单击事件.我认为我无法将此事件添加到正常的click事件中,因为它只需要在应用程序的一个特定页面中触发即可.在所有其他页面上,这将是不必要的代码.
但是,此设置产生了错误,因为将首先触发specialclass单击,然后再触发ajaxlink类.这必须进行切换,只有在ajaxlink返回成功时才必须触发.
任何人对此都有任何想法.
解决方法:
您可以在整个过程中重构正常的点击功能,并执行以下操作:
var normalClick=function(){/*get link with ajax*/};
$('.ajax-link').click(normalClick);
$('.specialClass').click(
function(){
normalClick();
/* special click code */
}
);
标签:mouseclick-event,event-handling,javascript,jquery 来源: https://codeday.me/bug/20191106/2000923.html