如何在$(window).resize()中的$(this)上使用e.preventDefault()?

car*_*mba 3 html javascript css jquery

我怎么用$(this).e.preventDefault()

我想要/需要的是在窗口调整大小时<a>应该表现不同.因此,如果小提示示例中窗口宽度小于710,则href不应触发.只会有一些JavaScript函数切换subnav.但如果窗口宽于710px,我希望href"正常"工作.

现在设置示例我已经看到事件多次触发.如果只发射一次怎么办呢?

另外,有没有更好的方法来实现我想要的?

请在点击前调整jsfiddle中的窗口大小!在这里小提琴

$( 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");
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 5

您需要检查单击处理程序中的窗口宽度,而不是在窗口大小调整处理程序中设置单击处理程序.试试这个:

$('nav ul.nav > li > a').on('click',function(e){
    if ($(window).width() < 710) {
        e.preventDefault();
    }
    alert("there");
});
Run Code Online (Sandbox Code Playgroud)

您当前的方法将无法工作,因为您最终会将相同的单击处理程序多次分配给同一元素.