首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在$(窗口).resize()内的$(this)上使用.resize()?

如何在$(窗口).resize()内的$(this)上使用.resize()?
EN

Stack Overflow用户
提问于 2014-04-14 09:19:40
回答 2查看 2.3K关注 0票数 2

如何使用$(this).e.preventDefault()

我想/需要的是在窗口上调整<a>的大小,它的行为应该有所不同。因此,就像在小提琴示例中,如果窗口宽度小于710,则不应该触发href。只会有一些JavaScript函数切换subnav。但是,如果窗口大于710 to,我希望href“正常”工作。

现在,通过设置这个示例,我看到了这个事件正在多次触发。如果只有一次火灾,我怎么能做到呢?

还有什么更好的方法来实现我想要的呢?

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

代码语言:javascript
复制
$( 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");
        });
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-14 09:24:42

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

代码语言:javascript
复制
$('nav ul.nav > li > a').on('click',function(e){
    if ($(window).width() < 710) {
        e.preventDefault();
    }
    alert("there");
});

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

票数 4
EN

Stack Overflow用户

发布于 2014-04-14 09:22:08

如何使用$(this).e.preventDefault()?

您不能这样做,因为.preventDefault()event属性的函数。

但是,您可以检查e.target.id (为您提供触发事件的元素id ),然后查看相应的操作

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23056369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档