Javascript 这就是在jQuery中定义函数的方式吗?
这就是在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
$(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();
});
});