0

我有一个用于移动视图的两级手风琴菜单,其中一个菜单项没有子项。对于那些有我e.preventDefault();为父 ul 声明的子项目的人,以便菜单可以关闭,但它也会影响我不想要的没有子项目(程序)的项目。

我需要定位程序项目,以便它可以点击但无法找到正确的方法。这是有问题的代码是jQuery("ul.sf-menu > li").off('click');

jQuery("ul.sf-menu > li > a").on("click", function(e){
    if(jQuery(this).parent().has("ul")) {
    e.preventDefault();
    jQuery("ul.sf-menu > li").off('click');
    }

Demo(请在800px或以下查看):http: //jsbin.com/ohocer/1/edit

非常感谢!

4

1 回答 1

0

问题是它.has()返回一个 jQuery 集合,而不是一个布尔值(参见http://api.jquery.com/has/上的文档)。您可以检查该集合是否包含以下元素:

if (jQuery(this).parent().has("ul")[0]) {

或者,如果你要preventDefaulta标签上,为什么不删除那些有孩子的 href 属性呢?然后,您可以preventDefault完全删除。

于 2013-06-15T08:11:18.463 回答