繁体   English   中英

无法在jquery中调用javascript函数

[英]cant call a javascript function within jquery

我用了两个jqueries库

   <script src="/Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
   <script src="/Scripts/jquery-ui.min.js" type="text/javascript"></script>

我有一个名为onSubmit();的函数onSubmit();

   function onSubmit() 

     {if ($.trim($("#password").val()) != "") {
           $("#Command").val("LOGIN");
          }
     }

当我尝试使用onSubmit函数时,Visual Studio中的intelicense可以毫无问题地找到它,但是在运行时我收到undefined onSubmit错误。 我尝试在这段代码中使用onSubmit函数:

$(function () {
$("#slider").draggable({
    axis: 'x',
    containment: 'parent',
    drag: function (event, ui) {
        if (ui.position.left > 550) {
            $("#well").fadeOut();
            onSubmit(); //this line get undefined error
        } else {
             ("opacity", 100 - (ui.position.left / 5))
        }
    },
    stop: function (event, ui) {
        if (ui.position.left < 551) {
            $(this).animate({
                left: 0
            })
        }
    }
});

一切之后,我在代码底部声明了onSubmit函数。 我不确定是否会引起问题。

更新:我这样更改了声明:

   window.onSubmit()= function() {
       if ($.trim($("#password").val()) != "") {
           $("#Command").val("LOGIN");
       }
    }

JavaScript函数在其包含范围内定义。 如果函数定义出现在另一个函数内部,那么它将仅在该函数内部定义,并且无法在其他位置访问。 如果一个函数在任何函数之外定义,那么它将被全局定义,这等效于驻留在window对象上。

您可以通过直接在window对象上分配函数来显式地使函数成为全局函数:

window.onSubmit = function() { ... };

注意,在这种情况下,您应该包括结尾的分号,因为赋值是一个表达式。 该函数定义被称为“表达式”,因此该语句必须以分号终止。

如果一个函数是全局定义的,那么无论范围如何,所有代码都可以访问它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM