【问题标题】:JQuery list selectors misbehaveJQuery 列表选择器行为不端
【发布时间】:2012-10-28 10:05:44
【问题描述】:

我知道很多人都问过关于选择器的问题,但我所做的一切看起来都不错,但最终还是无法正常工作。我有一个动作列表。每当单击它们的“文件夹”时,就会显示或隐藏这些动作。当单击操作本身时,我不希望它们再次隐藏……但是它们会这样做。谁能看到我的问题是什么?我尝试了很多变化;可能只是晚了。

相关代码:

func.js

$(function() {
    $(".menuitems").hide();

    $("#dmenu li").not(".menuitems li").click(function() {
        $(this).children(".menuitems").slideToggle();
    });

    $(".menuitems").children("li").click(function() {
        $.get("aux/" + $(this).text() + ".html", function(data) {
            $("#content").html(data);
        }, "text");
    });
});

main.html

<div id="content">
All contents come here!!
</div>

<div id="leftnavigation">
<h3>Options</h3>
<ul id="dmenu" style="list-style-type:none; margin-left:-50">
    <li>__Registration
        <ul class="menuitems">
            <li>FindExisting</li>
            <li>CreateNew</li>
        </ul>
    </li>
</ul>
</div>

【问题讨论】:

    标签: javascript jquery html jquery-selectors html-lists


    【解决方案1】:

    您想查看所有包含 .menuitems 的 li 元素,您可以执行以下操作:

    $(function() {
        $("#dmenu li:has(.menuitems)").click(function() {
            $(this).children(".menuitems").slideToggle();
        });
        $(".menuitems").hide().find("li").click(function() {
            $.get("aux/" + $(this).text() + ".html", function(data) {
                $("#content").html(data);
            }, "text");
          return false;
        });
    });
    

    【讨论】:

    • 成功了,非常感谢!为什么我使用的代码不起作用?你知道吗?另外,添加return false对代码有什么影响?
    • return 取消点击事件,这样它就不会冒泡节点,如果你删除 return false 语句,它将触发 slideToggle。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多