追加元素AFTER加载

Append element AFTER load

本文关键字:加载 AFTER 元素 追加      更新时间:2023-09-26

我有这个代码

$(".test_init").click( function(){
    var win = $(this).next(".test_wrap").find(".test_drop");
    if ($(win).html().length)
        $(win).empty().hide("fast");
    else {
        $(win).load("URL");
    }
});

它给我返回了一些没有关闭按钮的html表单

我希望使用这种方法添加关闭按钮,而不在每个功能中添加它

$('*[class*="_drop"]').change(function() {
    $(this).append($('<a />', {
        class: 'close-drop',
        click: function(e) {
            e.preventDefault();
            alert("test");
        }})
    );
});

但什么都没发生——我不明白为什么关闭按钮没有附加

<div class="test_wrap relative">
  <div class="test_drop absolute"></div>
</div>

示例:http://jsfiddle.net/fppfyey7/10/

您的问题是CSS,而不是JS。按钮是附加的,但你用你的风格隐藏了它。

例如,在这个fiddle中,我添加了一个带有JS代码和CSS:的按钮

Fiddle 1

现在,在这个例子中,我只删除了absoluterelative类:

Fiddle 2

我的解决方案(不够好,仍然有效)

$('*[class*="_drop"]').ajaxStop(function() {
    $(this).prepend('<a onclick="$(this).parent().empty().hide(''fast'');" class="close-drop"></a>');
});

如果这里会有更好的解决方案,将其标记为answear!