Jquery 函数不适用于 AJAX 添加的 DOM 元素

标签 jquery ajax dom

这是我的代码:

    $.ajax({
        url: "a.php",
        type: $(this).attr('method'),
        data: data,
        complete: function (xhr, result) {
            if (result == "success") {
                $("#field-option").remove();
                var chaine = '<section id="field-put"><ul>';
                var container;
                var passwords = xhr.responseText.split(";");
                for(var i= 0; i < passwords.length; i++) {
                    chaine += '<li><input type="text" class="put" id="field'+i+'" value="'+passwords[i]+'"><input type="button" value="Copy" name="copy" class="btn-put" data-clipboard-target="#field'+i+'"><span class="clear"></span></li>';

                }
                chaine += '</ul></section>';

                $("#main-area").append(chaine);

                $('#field0').shuffleText("My output text");

                new Clipboard('.btn-put');
            }
        }
    });

问题已上线

$('#field0').shuffleText("My output text");

函数 shuffleText 不适用,因为 #field0 是由 Ajax 生成的,因此在初始 DOM 之后附加到 DOM。

如果#field0已经在初始DOM中,则应用shuffleText,但我需要在Ajax返回输入元素上应用该函数...

#field0 追加到 DOM 后如何找到?

感谢帮助

最佳答案

shuffleText 不适用于文本输入字段。

Demo你的例子不起作用。

Demo通过将 input 替换为 div 来实现示例的工作。

for(var i= 0; i < passwords.length; i++) {
     chaine += '<li><div class="put" id="field'+i+'">'+passwords[i]+'"</div><input type="button" value="Copy" name="copy" class="btn-put" data-clipboard-target="#field'+i+'"><span class="clear"></span></li>';
}

关于Jquery 函数不适用于 AJAX 添加的 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322464/

相关文章:

javascript - Jquery 替换为并在再次单击同一个类时恢复旧值

javascript - 如何在ajax成功方法中获取数组值?

javascript - 具有 ID 的 DOM 树元素会成为全局属性吗?

javascript - 使用 jquery 按类隐藏同一父级中的元素

javascript - 为什么我的 jquery 模式在整页 ajax 加载后停止工作?

Javascript .add(选项)在cordova ios项目中不起作用

Jquery .ajax Get请求总是失败

javascript - 使用 AJAX 更改 div 内容 - 如何将导航显示为散列/ anchor

javascript - ajax中选择函数

javascript - 如何使用 JQuery 将 css 属性应用于子元素