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

Jquery 启用和禁用单击时的默认行为,jquery,slidetoggle,Jquery,Slidetoggle,我有一个带有标题和一些项目的列表。单击标题可切换项目的可见性 然而,我想把标题变成一个链接,对于较大的屏幕尺寸,这个标题不应该切换其子项的可见性,而只是像一个普通的链接一样 我不能让这个部件工作。我添加了return false/true,但它不起作用。有更好的方法吗 js: var头=$('h3'); 变量列表=$('ul'); 变量宽度=$(窗口).width(); header.click(函数(){ 崩溃(这个); }); var坍缩=函数(el){ 如果($(窗口).width()

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

然而,我想把标题变成一个链接,对于较大的屏幕尺寸,这个标题不应该切换其子项的可见性,而只是像一个普通的链接一样

我不能让这个部件工作。我添加了return false/true,但它不起作用。有更好的方法吗

js:

var头=$('h3');
变量列表=$('ul');
变量宽度=$(窗口).width();
header.click(函数(){
崩溃(这个);
});
var坍缩=函数(el){
如果($(窗口).width()<699){
$(el).next().slideToggle();
返回false;
}否则{
$(el.next().show();
返回true;
}
};
.

用于忽略链接

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();
    }
};
标题。单击(函数(e){
崩溃(本,e);
});
var崩溃=功能(el,事件){
如果($(窗口).width()<699){
event.preventDefault();
$(el).next().slideToggle();
}否则{
$(el.next().show();
}
};

另外,我认为
else{..}
部分不需要,因为它可以导航到另一个链接地址。

您可以使用
窗口。matchMedia()
来支持匹配的css媒体查询。有关示例,请查看以下代码

var media = window.matchMedia("(min-width: 699px)");

media.addListener(function(m)}{
    header.unbind('click');
    if(m.matches){
      e.preventDefault();
      $(el).next().slideToggle();
    }
})

如果媒体查询被js命中,这将绑定相应的点击处理程序。尝试一下,你会得到你想要的结果。我在代码中看到的一个缺陷是,如果用户尝试流体布局,它不会重新绑定事件。只会让人困惑。

你能解释一下吗?根据你的Q,如果<代码>如果是?那时我的小提琴能用了。将输出窗口的大小增加到大于699,并使用全屏>699进行检查抱歉,您完全正确。它现在可以正常工作了。:-)
var media = window.matchMedia("(min-width: 699px)");

media.addListener(function(m)}{
    header.unbind('click');
    if(m.matches){
      e.preventDefault();
      $(el).next().slideToggle();
    }
})