我有一个带有“单击”事件的功能。在触发“ click”之后,我需要一个条件语句来根据已单击的按钮执行某些操作。我添加了一些代码使其更加清晰:
ul和a:
<ul>
<li class="menu first"><a href="link/to/somwhere"></a></li>
<li class="menu second"><a href="link/to/somwhere"></a></li>
<li class="menu third"><a href="link/to/somwhere"></a></li>
<li class="menu fourth"><a href="link/to/somwhere"></a></li>
</ul>
<a class="logo" href="link/to/somwhere"></a>
jQuery:
$('.menu, .logo').on('click','a',function(e){
var href = $(this).attr('href');
$(this).data('clicked', true);
if ($('.first a').data('clicked')) {
// do things reserved only for .first button
}
else if ($('.logo a').data('clicked')) {
// do things reserve only for .logo link
}
else {
// do things reserved for every other buttons
}
goTo(href);
});
function goTo(href) {
$.ajax({
url: href,
success: function(data) {
// some code
}
});
}
我的问题是,当我单击菜单按钮时,它根本不起作用。我希望它做某事,具体取决于单击了哪个按钮。当我单击“ .first”时,它起作用,当我单击“ .logo”时,它也起作用,但是第三个“ else”被省略了。
整个处理.data()
似乎是一种绕回操作的方式:
if ($(this).is('.menu a')) {
// menu button, or ".first a" for just the first one, etc
}
else if ($(this).is('.logo')) {
// the logo button
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句