我正在为本地没有HTML的第三方应用剥皮。这一切都来自onLoad事件和一堆ajax调用。
我在页面中添加了jQuery。我需要wrap()一个动态加载的元素。如果需要,我可以添加一个插件。
我该怎么做?感谢。
更新: 这有效,但还有更好的方法吗?
$(document).ready(function() {
(function() {
var length = $(".applicationShell").length;
var h = setInterval(function () {
if ($(".applicationShell").length > length) {
length = $(".applicationShell").length;
clearInterval(h);
$(".applicationShell").addClass("test")
}
}, 100);
})();
});
答案 0 :(得分:1)
好吧,似乎我找不到更好的解决方案。 :(这是我用过的那个。
$(document).ready(function() {
(function() {
var length = $(".applicationShell").length;
var h = setInterval(function () {
if ($(".applicationShell").length > length) {
length = $(".applicationShell").length;
clearInterval(h);
$(".applicationShell").addClass("test")
}
}, 100);
})();
});
答案 1 :(得分:0)
答案 2 :(得分:0)
如果你想在另一个活动上这样做,你可以这样做:
$('.clickme').live('click', function() {
$(myselector).wrap(/* my stuff to wrap */);// Live handler called.
});
其中“click”将是您希望管理行为的事件,而.clickme是事件实例化器上的类。
其他选项:将此包装作为ajax成功的一部分(在此处进行jquery ajax的解析):
...snip
success: function(msg)
{
$(myselector).wrap(/* my stuff to wrap */);
},
...
...
答案 3 :(得分:0)
修改:很遗憾,您可以 无法使用livequery插件来获得您正在寻找的效果。感谢@patrick指出这一点。 This fiddle显示它不适用于原生DOM元素追加(“你好”仍为黑色)。取消注释小提琴的最后一行,你会看到当jQuery追加最终运行时,livequery然后“看到”除了jQuery之外的原生DOM添加(并且两个添加变为绿色)。
因此,您可能必须坚持使用类似问题的投票解决方案。事实上jQuery在有理由检查容器时看到非jQuery DOM添加可能会提示另一种方式进行轮询 - 只需在容器中使用livequery,就像在Fiddle中一样,然后使用setTimeout
执行中性jQuery容器上的操作(如r emoveClass('nothing')
)。然后,Livequery将“看到”在民意调查之间添加的新元素。这确实有效,但我不确定这是一个更好的选择。