html - jQuery Ajax 响应后动态链接不起作用

标签 html jquery

我有由 ajax 响应创建的动态菜单链接。它仅在页面最初加载时有效,但在新页面时无效。我尝试使用 .On 绑定(bind)它,但这不起作用。请参阅代码和标记。希望有人知道为什么它不会绑定(bind)。

    $(document).ready(function(){
        $(document).on('click', function(e) {
                var $clicked = $(e.target);
                if (! $clicked.parents().hasClass("menu")){
                    $(".menu dd ul").hide();
                    $(".menu dt a").removeClass("selected");
                }

        });

        $(".menu dt a").on('click', function(e) {

            var clickedId = "#" + this.id.replace(/^link/,"ul");

                // Hides everything else that the current menu 
            $(".menu dd ul").not(clickedId).hide();

                //Toggles the menu.
            $(clickedId).toggle();

                //Add the selected class.
            if($(clickedId).css("display") == "none"){
                $(this).removeClass("selected");
            }else{
                $(this).addClass("selected");
            }

        });
});

标记如下。

        <div class="floatLeft" style="width:15px;">
            <dl style="" class="menu">
               <dt>
               <a class="" id="linkglobal_1" style="cursor: pointer;"></a><span class="result"></span></dt>
                <dd>
                    <ul style="display: none;" id="ulglobal_1">
                        <li><a href="#">Friends</a></li>
                        <li><a href="#">Only Me</a></li>
                        <li><a href="#">Customize</a></li>
                  </ul>
               </dd>
            </dl>
        </div>

最佳答案

事件委托(delegate)需要这样:

$(document).on('click', ".menu dt a", function(e) {

关于html - jQuery Ajax 响应后动态链接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14881335/

相关文章:

javascript - 使特定部分标记为窗口的 100% 宽度和高度

javascript - 如何从一个文本区域复制到另一个文本区域?

javascript - 单击jquery加载打字动画

javascript - 是否有一个预先写好的低影响时间下拉列表,允许选择一天中的 1440 分钟中的任何一个?

html - 用CSS将页面分成3个部分

php - Mysqli数据库PHP列表更新慢

Javascript:两个 if typeof undefined 语句给出不同的结果

javascript - 如何将 'fadein' 和 'animate' 文本放在页面中间?

css - 在 div 元素上对齐文本

javascript - 使用 javascript 显示 Bootstrap 模式对话框的问题