我该如何使用$(this).e.preventDefault()
?
我想要/需要的是窗口调整大小<a>
应该有不同的行为。因此,如果小提示示例中窗口宽度小于710,则不应触发href
。只有一些JavaScript函数可以切换subnav
。但是如果窗口宽于710px,我希望href
能够“正常”工作。
现在设置示例我已经看到事件多次触发。如果只发射一次怎么办呢?
此外,有没有更好的方法来实现我想要的目标?
点击之前请在jsfiddle中调整窗口大小! fiddle here
$( window ).resize(function() {
var wW = $(window).width();
$('.windowWidth span').html(wW);
if(wW < 710) {
$('nav ul.nav > li > a').on('click',function(e){
e.preventDefault();
alert("here");
});
} else {
$('nav ul.nav > li > a').on('click',function(e){
alert("there");
});
}
});
答案 0 :(得分:5)
您需要检查单击处理程序中的窗口宽度,而不是在窗口大小调整处理程序中设置单击处理程序。试试这个:
$('nav ul.nav > li > a').on('click',function(e){
if ($(window).width() < 710) {
e.preventDefault();
}
alert("there");
});
您当前的方法无效,因为您最终会多次将相同的点击处理程序分配给同一个元素。
答案 1 :(得分:2)
我如何使用$(this).e.preventDefault()?
你不能因为.preventDefault()
是event
属性的函数。
但是,您可以检查e.target.id
(为您提供触发事件的元素ID)并查看相应的内容