我设法删除了列表项的属性元素但是我正在努力做以下事情:当我单击列表项时,它应该添加一个名为important的类,否则,该类必须不存在。
我使用jQuery尝试了这个:
$(document).ready(function (){
var origHref = $('ul#primary-menu > li.menu-item-has-children > a').attr('href');
//alert(origHref);
var clicks = 0;
$('ul#primary-menu > li.menu-item-has-children > a').removeAttr("href").data("origHref",origHref);
$('ul#primary-menu > li.menu-item-has-children').click(function(){
clicks++;
if(clicks === 1){
$('ul#primary-menu > li.menu-item-has-children').addClass('important');
}
else if(clicks > 1){
alert("you clicked twice");
}
});
});
问题:当我第一次检查元素并单击列表时,没有任何反应。只有当我第二次点击该类时才会添加。
注意:我只想为移动设备做这件事,所以不必担心超过800像素的屏幕。
请帮忙。
答案 0 :(得分:2)
基于类而不是全局变量执行if,阻止默认单击事件:
$('ul#primary-menu > li.menu-item-has-children').click(function(e) {
if ($(window).width() < 800) {
if (!$(e.target).closest('ul').is('.sub-menu')) {
e.preventDefault();
if (!$(this).hasClass('important')) {
$(this).addClass('important')
//toggle the menu
} else {
//redirect if second click
window.location = $(this).find('a').attr('href');
}
}
}
});