Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery追加并调用动态javascript函数_Javascript_Jquery_Dynamic - Fatal编程技术网

使用jQuery追加并调用动态javascript函数

使用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+'"

您能创建一个动态javascript函数并立即调用它吗

我已经发现您不能使用append的回调

拟议、非工作、代码:

<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>