编程语言
首页 > 编程语言> > javascript-处理顺序很重要的jQuery中的多次点击事件

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