2012-08-02 84 views
0

我有一个按钮,当点击的形式发送一个变量到一个javascript 函数。当变量等于“链接”时,我想调用一个名为makeLink()的jquery函数。JavaScript和jquery:你怎么能从一个javascript函数内调用jquery函数

这是我有:

function getText(change) 
{ 
    if(change == "link") 
    { 
     //call jquery function called makeLink() 

    } 

} 

,这里是与窗体创建一个模式弹出我的jQuery函数:

$(document).ready(function(){ 

function makeLink() { 
    if ($("#makeALinkModalPopup").is(":hidden")){ 
    $("#makeALinkModalPopup").fadeIn("slow"); 

    $("#backgroundPopup").css({ 
     "height": document.documentElement.offsetHeight 

     }); 

    $("#backgroundPopup").css({"opacity": "0.7"}); 
    $("#backgroundPopup").fadeIn("slow"); 

     } 

    } 


}); 

感谢您的帮助。

+2

什么是“一个jQuery功能”? – 2012-08-02 21:07:37

+0

该函数不是全局的 - 这就是你不能称之为的原因。它与jQuery无关,除了它恰好是一个包含它的jQuery“ready”处理程序。 – Pointy 2012-08-02 21:11:37

回答

0

您不应在文档就绪事件中定义函数,而应在单独的文件中定义函数。

然后,那就是你有:

//call jquery function called makeLink() 

只要把

makeLink() 
1

移动makeLink到全球范围,通常调用它。只有JavaScript功能。你所看到的区别仅仅在于范围。

Read about scope here.

至于别人说,取出的document.ready包装。你的函数不需要在那里定义,因为它在document.ready之外是看不到的。

+0

你能给我更多的细节吗?或者一个例子。非常感谢你! – 2012-08-02 21:11:45

2

取出的document.ready包装,使makeLink提供给页面

function getText(change){ 
   if(change == "link") { 
      //call jquery function 

     makeLink() 

   } 
    } 


    function makeLink() { 
    if ($("#makeALinkModalPopup").is(":hidden")){ 
     $("#makeALinkModalPopup").fadeIn("slow"); 

     $("#backgroundPopup").css({   
        "height": document.documentElement.offsetHeight 

      }); 

     $("#backgroundPopup").css({"opacity": "0.7"}); 
     $("#backgroundPopup").fadeIn("slow"); 

      } 
    } 
+0

谢谢你的帮助。我必须做一些其他的错误,因为移除document.ready包装不会做任何事情。我会继续研究。谢谢。 – 2012-08-02 21:27:27

+0

控制台中的任何消息?你能为我们做一个jsfiddle.net吗? – mplungjan 2012-08-02 21:29:29

0

其余您不需要的DOM已准备就绪。

只要有

function makeLink() { 
    if ($("#makeALinkModalPopup").is(":hidden")){ 
    $("#makeALinkModalPopup").fadeIn("slow"); 

    $("#backgroundPopup").css({ 
     "height": document.documentElement.offsetHeight 

     }); 

    $("#backgroundPopup").css({"opacity": "0.7"}); 
    $("#backgroundPopup").fadeIn("slow"); 

     } 

    } 

只要有

function getText(change) 
{ 
    if(change == "link") 
    { 
     makeLink(); 

    } 

} 

如果你想使用的功能的DOM已准备就绪,那么你需要做的。

$(document).ready(makeLink); <我可能是错的,但语法时才是安全的,我知道这个工程..

$(document.ready(function(){ 
// do what ever you want 
//even call make link 

makeLink(); 
}