javascript - 附加 ul - JQuery

标签 javascript jquery

我正在附加一个 ul 列表,它工作得很好,除了当我尝试附加我的 ul 表时,我分配了一个 start-dropdownClose 类> 挂接到事件监听器:

$(".start-dropdownClose").click(function(event){
    event.stopPropagation();
    $thisOne = $($(this).parent().attr('id'));
    alert($thisOne.selector);
    $("#" + $thisOne.selector).fadeOut();
});

这是我的附加方法:

IfpClientGui.prototype.updateFloors = function(floors){
    // updates floor list from master list of floors. 

    var ifpcg = this;
    var ifpc = ifpcg.getIfpClient();
    $("#floor_list").empty();
    $("#floor_list").append("<li class='start-dropdownClose'><a href='' onclick='return false;'>X</a></li>");

    for(var i = 0; i < floors.length; i++)
    {

        $link = $('<a href="javascript:void(0);">'+floors[i].ifpf_name+'</a>');
        $link.data("floor",floors[i]);
        $link.click(function(){         
            ifpcg.hideAllOptionBoxes();

            ifpc.displayFloor($(this).data("floor"));
            $(this).parent().find("#ifpOptionList").show();
        });

        var $floor = $('<li></li>');
        $floor.append($link);
        ifpcg.updateOptions(floors[i].groups,$floor);
        $("#floor_list").append($floor);

    }

}

对于为什么会发生这种情况有什么想法或建议吗?

事件监听位于 ifpClientGuiinit 类中。我什至尝试将监听的事件移至 $(document).read... 但没有成功。

最佳答案

$(".start-dropdownClose") 仅适用于执行此代码时存在的具有该类的元素。当您稍后添加具有此类的元素时,它们将不会绑定(bind)到事件处理程序。

试试这个:

$('#floor_list').on("click", ".start-dropdownClose"), function(event){
  // Your code ...
});

这意味着监听器位于#floor_list(我假设它始终存在)。发生在元素上的任何点击都将被注册,如果发生在特定类上,则会触发该函数。

关于javascript - 附加 ul - JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23332545/

相关文章:

javascript - Three.js 不上传加载本地FBX文件

javascript - AudioContext.decodeAudioData(...) 不能在 iPhone 上工作,但在其他任何地方都可以工作

c# - 在 C# MVC 的 Jquery 中使用 CSS 文件

jquery - 是否可以删除 Jqgrid 的 header 部分

jquery - 将 jquery 序列化数据加载到表单中

javascript - 拖放 - 以表格格式保存元素被放置的位置

javascript - 图像宽度和高度有问题的 JQuery 图像 slider

javascript - 计算百分比 Javascript

javascript - 悬停时的 jQuery 函数不起作用,这是为什么?

javascript:将函数存储为数组