gpt4 book ai didi

javascript - 为什么这个
  • 上的事件处理程序没有被调用?
  • 转载 作者:行者123 更新时间:2023-11-28 21:23:38 25 4
    gpt4 key购买 nike

    我有一个菜单如下:

    <button id="button" onclick="DropDown(event)">Drop down the menu</button>
    <div id="menu">
    <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    </ul>
    </div>

    菜单的 JavaScript 是:

    // To close the menu when clicked outside
    $(document).click(function() { $('#menu').hide(); });

    // When clicking on the items
    $('#menu li').click(function () {

    $(document).append('<code>Clicked item!</code>');

    });

    function DropDown(event) {

    // Position of the menu
    var position = $('#button').offset();

    // Position the menu and slide it down
    $('#menu').css('top',
    (position.top + $('#button').height() + 4) + 'px')
    .css('left',
    position.left + 'px')
    .slideToggle();

    event.stopPropagation();
    }

    大部分代码都按预期工作:单击按钮会下拉菜单,单击任意位置会使菜单消失。 但是,分配给 <li> 的事件处理程序尽管 onclick 根本没有被调用,但 items 根本没有被调用。 document 的处理程序正在被调用。

    jsFiddle:http://jsfiddle.net/W5SqD/4/

    最佳答案

    尝试在 $(document).ready() block 中或通过使用实时处理程序附加事件。这将确保当元素存在时事件被附加。以下内容对我有用。

    // When clicking on the items
    $('#menu li').live("click",function () {

    alert("Hello!");
    $(document).append('<code>Clicked item!</code>');

    });

    关于javascript - 为什么这个 <li> 上的事件处理程序没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602220/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com