标签:mouseclick-event event-handling 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。