Bla*_*man 48 javascript jquery
这是你如何在jQuery中定义一个函数?
$(document).ready( function () {
var MyBlah = function($blah) { alert($blah); };
});
Run Code Online (Sandbox Code Playgroud)
现在调用我做的函数:
MyBlah('hello');
Run Code Online (Sandbox Code Playgroud)
Pab*_*dez 93
首先,你的代码是有效的,这是在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)
Run Code Online (Sandbox Code Playgroud)
这是(有时)一种理想的行为,因为我们不会污染全局命名空间,所以如果你的函数不需要从代码的其他部分调用,那么这就是你要走的路.
在匿名函数之外声明它将它放在全局命名空间中,并且可以从任何地方访问它.
最后,不需要变量名称开头的$,有时当变量是jQuery对象本身的实例时(在这种情况下不一定),它有时用作jQuery约定.
也许你需要的是创建一个jQuery插件,这非常简单和有用,因为它可以让你做这样的事情:
$('div#message').myBlah("hello")
Run Code Online (Sandbox Code Playgroud)
另见:http://www.re-cycledair.com/creating-jquery-plugins
geh*_*kky 44
不,你可以把函数写成:
$(document).ready(function() {
MyBlah("hello");
});
function MyBlah(blah) {
alert(blah);
}
Run Code Online (Sandbox Code Playgroud)
这会调用MyBlah内容准备好的功能.
Dmi*_*kov 16
没有.
您可以使用与常规javascript完全相同的方式定义函数.
//document ready
$(function(){
myBlah();
})
var myBlah = function(blah){
alert(blah);
}
Run Code Online (Sandbox Code Playgroud)
另外:不需要$
小智 8
您可以扩展jQuery原型并将您的函数用作jQuery方法.
(function($)
{
$.fn.MyBlah = function(blah)
{
$(this).addClass(blah);
console.log('blah class added');
};
})(jQuery);
jQuery(document).ready(function($)
{
$('#blahElementId').MyBlah('newClass');
});
Run Code Online (Sandbox Code Playgroud)
有关扩展jQuery原型的更多信息,请访问:http://api.jquery.com/jquery.fn.extend/
| 归档时间: |
|
| 查看次数: |
147977 次 |
| 最近记录: |