2012-06-04 183 views
0

我有一个变量声明:传递一个变量的函数

var recent; 

我写了需要传递给它的变量的函数。不过,我相信发生了什么变量是作为一个字符串传递的。该变种是由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

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

detachVariable("#recent", recent, "recent.php"); //removed quotes 
+0

由此我得到一个错误:“未捕获的ReferenceError:thisFile未定义” – Yahreen

+1

'thisFile' in line'$(thisDiv +“ul.top-level”)。load('assets/includes /'+ thisFile, function(){'未在函数'detachVariable'中定义 –

+0

哎呀,引用它不正确。谢谢! – Yahreen

1

就忽略周围的第二个参数报价。有了它们,你的确在传递一个字符串而不是变量。

0

Javascript中的变量具有全局范围。所以你可以直接使用recent == whatever而不是试图将它作为参数传递。

相关问题