使用jQuery追加并调用动态javascript函数
您能创建一个动态javascript函数并立即调用它吗 我已经发现您不能使用append的回调 拟议、非工作、代码:使用jQuery追加并调用动态javascript函数,javascript,jquery,dynamic,Javascript,Jquery,Dynamic,您能创建一个动态javascript函数并立即调用它吗 我已经发现您不能使用append的回调 拟议、非工作、代码: <script type="text/javascript"> var count=1; $(document).ready(function(){ $(".main").append(' <script type="text/javascript">function init'+count+'(){alert("'+count+'"
<script type="text/javascript">
var count=1;
$(document).ready(function(){
$(".main").append('
<script type="text/javascript">function init'+count+'(){alert("'+count+'");}<'+'/script>
');
window['init'+count]();
});
</script>
<div class="main"></div>
编辑:
将其缩小为同步问题。将警报放在append和window之间可以使其工作,但这并不是一个真正有用的修复方法,因为当我将此代码放在循环中时,计数可能会上升到100。
我想我得继续找了。这应该行得通,但你的报价不正确。在append和中不应该有任何未替换的双引号。尝试:
使用外部脚本和$.getScript,它允许您指定回调并使代码更整洁
$.getScript("http://scriptURL.com/script.js", function(){ itit(); });
没有必要内联代码。。您可以在添加标记的同一位置运行它,或者使用jQuery.globalEval 是的,你可以!这就是javascript的发明方式!它非常强大:
<script type="text/javascript">
var count=1;
var init = [];
$(document).ready(function(){
(function (count) {
init[count] = function () {
alert(count);
}
})(count);
init[count]();
});
</script>
<div class="main"></div>
或者,如果您只想构造和调用函数而不存储它
<script type="text/javascript">
var count=1;
$(document).ready(function(){
(function () {
alert(count);
})();
});
</script>
<div class="main"></div>
<script type="text/javascript">
var count=1;
$(document).ready(function(){
(function () {
alert(count);
})();
});
</script>
<div class="main"></div>