Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这就是在jQuery中定义函数的方式吗?_Javascript_Jquery - Fatal编程技术网

Javascript 这就是在jQuery中定义函数的方式吗?

Javascript 这就是在jQuery中定义函数的方式吗?,javascript,jquery,Javascript,Jquery,这就是在jQuery中定义函数的方式吗 $(document).ready( function () { var MyBlah = function($blah) { alert($blah); }; }); 现在调用我所做的函数: MyBlah('hello'); 不,您可以将函数编写为: $(document).ready(function() { MyBlah("hello"); }); function MyBlah(blah) { alert(blah

这就是在jQuery中定义函数的方式吗

$(document).ready( function () {
    var MyBlah = function($blah) { alert($blah);  };
 });
现在调用我所做的函数:

MyBlah('hello');

不,您可以将函数编写为:

$(document).ready(function() {
    MyBlah("hello");
});

function MyBlah(blah) {
    alert(blah);
}

这将在内容就绪时调用函数
MyBlah

这就是定义匿名函数的方式,该函数在文档就绪时被调用。

定义函数的方式与在常规javascript中定义函数的方式完全相同

//document ready
$(function(){
    myBlah();
})

var myBlah = function(blah){
    alert(blah);
}

另外:不需要$

首先,您的代码可以工作,这是在JavaScript中创建函数的有效方法(jQuery除外),但因为您在另一个函数(本例中是匿名函数)中声明函数,“MyBlah”将无法从全局范围访问

下面是一个例子:

$(document).ready( function () {

    var MyBlah = function($blah) { alert($blah);  };

    MyBlah("Hello this works") // Inside the anonymous function we are cool.

 });

MyBlah("Oops") //This throws a JavaScript error (MyBlah is not a function)
这(有时)是一种可取的行为,因为我们不会污染全局名称空间,因此如果不需要从代码的其他部分调用函数,这是一种方法

在匿名函数之外声明它会将其放置在全局命名空间中,并且可以从任何地方访问它

最后,不需要变量名开头的$,当变量是jQuery对象本身的实例时(在本例中不一定如此),它有时用作jQuery约定

也许你需要的是创建一个,这是非常简单和有用的,因为它将允许你这样做:

$('div#message').myBlah("hello")

另请参见:

您可以扩展jQuery原型并将您的函数用作jQuery方法

(function($)
{
    $.fn.MyBlah = function(blah)
    {
        $(this).addClass(blah);
        console.log('blah class added');
    };
})(jQuery);

jQuery(document).ready(function($)
{
    $('#blahElementId').MyBlah('newClass');
});

关于在这里扩展jQuery原型的更多信息:

下面的示例演示如何在jQuery中定义函数。您将看到一个按钮“单击此处”,当您单击它时,我们称我们的函数为“myFunction()”


您可以在这里看到一个示例:

挑剔:您没有“在jQuery中定义函数”,因为jQuery只是一个库,而不是语言。事实上,它甚至不具备框架的资格,它只是一个库。(一个很棒的库)也许他指的是JQuery插件?只是为了澄清为什么人们可能会对你的答案投反对票:函数不是匿名的,因为它被分配给了一个变量;其次,当文档准备好时,函数不会被调用,因为它只是被分配的,Pablo是正确的:一个匿名函数被分配给闭包中的一个变量,第二个闭包在DOM就绪时被调用。
jQuery.fn.extend({
    zigzag: function () {
        var text = $(this).text();
        var zigzagText = '';
        var toggle = true; //lower/uppper toggle
            $.each(text, function(i, nome) {
                zigzagText += (toggle) ? nome.toUpperCase() : nome.toLowerCase();
                toggle = (toggle) ? false : true;
            });
    return zigzagText;
    }
});
  $(document).ready(function(){
    $.myFunction = function(){ 
      alert('You have successfully defined the function!'); 
    }
    $(".btn").click(function(){
      $.myFunction();
    });
  });