如何在jQuery中的匿名函数中获取变量?

时间:2015-05-30 06:52:02

标签: javascript jquery anonymous-function

如何将变量传递给匿名函数。我想将几个变量传递给一个匿名函数,基于该函数,它将创建一个新的字符串。 在此代码中,我想传递url,timestamp,id和plan。

  <script>
        jQuery(document).ready(function() {
            console.log("check")
            var newUrl=url+'?id='+id+'&timestamp='+timestamp+'&plan='+plan;
            console.log(newUrl);
            createStoryJS({
                type:       'timeline',
                width:      '1250',
                height:     '240',
                source:     newUrl,
                embed_id:   'my-timeline'
            });
        });
    </script>

3 个答案:

答案 0 :(得分:1)

ready处理程序的参数由jQuery传递,并设置为jQuery对象(请参阅https://api.jquery.com/ready/&gt;别名jQuery命名空间)。因此,您无法将其传递到上述代码中的函数声明中。

您可以将其设置为全局对象或设置表单域,然后从函数内部读取它。后者的小提琴 - http://jsfiddle.net/eqz7410c/

HTML

<form>
    <input id="b" type="hidden" value="123" />
</form>

JS

$(document).ready(function() {
    alert($("#b").val())
});

答案 1 :(得分:1)

您可以声明具有全局范围的变量,并在函数调用中使用它,如下所示

var globalVar = 1;
jQuery(document).ready(function() {
    console.log(globalVar);
});

答案 2 :(得分:0)

首先,当jQuery(document).ready(function() {});准备好被访问时,id将成为文档的入口点。有几种方法可以解决这个问题。

这个想法是你不需要传递任何东西,只需使用你在这个匿名函数中创建的资源。

  

我想将几个变量传递给一个匿名函数,基于   功能,它会创建一个新字符串。

我不建议你使用全局变量。您可能从中获取timestampplannewUrl的值的函数应该返回您可以在文档就绪函数中分配给function returnUrl(){ // code to calculate id, timestamp and path.. // .... // .... return url+'?id='+id+'&timestamp='+timestamp+'&plan='+plan; } jQuery(document).ready(function() { // DOM ready to access.. console.log("check") var newUrl = returnUrl(); console.log(newUrl); createStoryJS({ type: 'timeline', width: '1250', height: '240', source: newUrl, embed_id: 'my-timeline' }); }); 的sting本身。您也可以使用closure

:%s/