【发布时间】:2018-02-16 10:30:14
【问题描述】:
我有一个由 jquery fonticonpicker 动态创建的元素。 我正在尝试操作图标,但简单地使用下面的代码是行不通的。 .icons-selector i 由插件动态创建。
我总是成功地操作一个元素,只需要从一个已经存在的元素开始编写我的选择器,即:body 或 document。有人可以提供一些简单的替代方案来解决这个问题吗?
目标是我需要在加载后修改元素。无需用户操作。
$(document).ready(function(){
iconContainerID = "id_12";
$('body #' + iconContainerID).css('background', 'red'); // this works!
$('body #' + iconContainerID + ' .icons-selector i').css('background', 'yellow'); // this doesnt work
});
只有当我在页面上创建了另一个元素并向它添加了一个单击事件,然后单击它时.. 它最终会设置样式
这行得通:
<a href="" id="clickme">click me</a>
$(document).on('click', '#clickme', function(){
iconContainerID = "id_12";
$('body #' + iconContainerID + ' .icons-selector i').css('background', 'yellow'); // this does work
});
【问题讨论】:
-
在您的插件完成创建动态元素后,您是否保留了此代码。
-
@ManojYadav 是的,我确实想到了这一点,并在插件代码运行后放置了代码。但是 document.ready 不应该等待整个加载吗?
-
是的,但如果你的插件也等待 document.ready() 函数怎么办。 document.ready 等待 DOM 创建而不是 dom 操作的任何方式。在这种情况下,您的图书馆正在被操纵,所以请尝试一下。
标签: javascript jquery dom dynamic