0

我声明了一个变量:

var recent;

我写了一个需要传递变量的函数。但是,我相信正在发生的事情是变量作为字符串传递。var 表示为thisVar

function detachVariable(thisDiv, thisVar, fileName) {

    //Check if this section is visible:
    if($(thisDiv + " li").length > 0) {
        $(thisDiv).prepend(thisVar);
    } else {

        //If variable does not have content stored, store it:
        if(thisVar === undefined) {

            $("#site-nav li a").parents().removeClass("nav-active");
            $(this).addClass("nav-active");
            $(thisDiv + " ul.top-level").load('assets/includes/' + thisFile, function () {
                $(this).show().siblings().hide();
                ajaxAudioController();
            });

            //If variable has content, show it:
        } else {
            $("#site-nav li a").parents().removeClass("nav-active");
            $(this).addClass("nav-active");
            $(thisDiv).prepend(thisVar);
        }
    }

}

我的点击功能:

$("#site-nav .nav1").on("click", function (event) {
    detachVariable("#recent", "recent", "recent.php");
    event.preventDefault();
});

有没有办法可以将我的变量传递给函数?

4

3 回答 3

4

如果我理解正确.. 你所要做的就是删除recent.. 周围的引号,见下文,

detachVariable("#recent", recent, "recent.php"); //removed quotes 
于 2012-06-04T20:26:56.450 回答
1

只需省略第二个参数周围的引号。使用它们,您确实传递的是字符串文字而不是变量。

于 2012-06-04T20:28:11.910 回答
0

Javascript 中的变量具有全局范围。因此,您实际上可以直接使用recent == whatever而不是尝试将其作为参数传递。

于 2012-06-04T20:28:14.933 回答