所以,我有两个js函数:
首先js追加一个新的div容器。 第二个js对这个新的div做了一些事情:
示例:
my_html = '<div class="second"></div>'
jQuery('.first').html(my_html);
jQuery('.second').html("Yay");
这是问题所在。第二个js函数依赖于类"second"
的存在。
然而,两者都在my_html
被填充之前运行,所以我永远不会得到“yay”作为结果。
有没有办法以某种方式延迟直到第一个功能完成? (意思是有第二个div)。
修改
这是代码(请假设所有代码都有效)
var THIS_FUNCTION= function (data) {
MY_VAR.push("some data");
alert("before: " + MY_VAR);
};
if (//Some condition met) {
alert("first function");
SOME_FUNCTION(THIS_FUNCTION);
};
alert("After: " + MY_VAR);
这是我得到的警报序列:
Alert 1: "first function"
Alert 2: "After:"
Alert 3: "before: some data"
"before"
警报应首先出现,但我最后会收到警报。
我做错了什么?
答案 0 :(得分:2)
你不需要做任何事情,它应该有用,这里是jsfiddle link that proves your example works without changes
但是,您也可以这样做:
my_html = '<div class="second"></div>'
$(my_html).filter(".second").html("Yay").appendTo(".first");
答案 1 :(得分:-1)
至于推迟:
setTimeout(yourFunction, 1);
同样在您的示例中,您可以在第一个查询对象之后链接而不是启动第二个选择器:
jQuery('.first').html(my_html)
.filter('.second').html("Yay");