jquery - 启用和禁用单击时的默认行为

标签 jquery slidetoggle

我有一个带有标题和一些项目的列表。单击标题可切换项目的可见性。

但是,我想将标题变成链接,并且对于较大的屏幕尺寸,此标题不应切换其子项目的可见性,而应像普通链接一样工作。

我无法让这部分工作。我已经添加了 return false/true,但它不起作用。有更好的方法吗?

js:

var header = $('h3');
var list = $('ul');
var width = $(window).width();

header.click(function() {
    collapse(this);
});

var collapse = function (el) {
    if ($(window).width() < 699) {
        $(el).next().slideToggle();
        return false;
    } else {
        $(el).next().show();
        return true;
    }
};

JsFiddle .

最佳答案

使用event.preventDefault();忽略链接,

<强> Fiddle

header.click(function(e) {
    collapse(this,e);
});

var collapse = function (el,event) {
    if ($(window).width() < 699) {
        event.preventDefault();
        $(el).next().slideToggle();

    } else {
        $(el).next().show();
    }
};

此外,我认为不需要 else{..} 部分,因为它无论如何都会导航到另一个链接地址。

关于jquery - 启用和禁用单击时的默认行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37919528/

相关文章:

javascript - 如何停止滚动事件

jquery - Div 无法识别悬停

jquery - SlideToggle:两种不同的缓动

javascript - 使用 jquery 切换幻灯片

jquery - 如何控制jQuery slideToggle下推的div

javascript - 获取弹出按钮的 id

javascript - jQuery:如何检查某些复选框是否被选中,并相应地更改样式?

javascript - jQuery 盒子阴影动画 - 这可能吗?

php - 将 .slideToggle 与动态生成的 div 一起使用

javascript - 根据点击切换特定的 div,隐藏同一类的所有其他 div