Javascript 如何调用jQuery嵌套函数
我正在尝试调用嵌套函数,但该函数不起作用Javascript 如何调用jQuery嵌套函数,javascript,jquery,Javascript,Jquery,我正在尝试调用嵌套函数,但该函数不起作用 这是我试过的 脚本: (function( $ ){ $.fn.investPage = function() { function setupFCConfig(){ $('.nestedFunction').click(function(){ alert('setupFCConfig func()'); }
这是我试过的 脚本:
(function( $ ){
$.fn.investPage = function() {
function setupFCConfig(){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
}
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
};
})( jQuery );
$.fn.investPage();
$.fn.investPage.setupFCConfig();
setupFCConfig()
不是$.fn.investPage对象的属性,因此不能像这样调用它:
$.fn.investPage.setupFCConfig();
(function( $ ){
$.fn.investPage = function() {
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
};
$.fn.investPage.setupFCConfig = function (){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
}
})( jQuery );
$.fn.investPage();
$.fn.investPage.setupFCConfig();
它是一个本地函数,在声明它的范围之外不可用。如果希望它从外部作用域中可用,则需要将其指定为该外部作用域中可用的某个对象的属性
例如,您可以将该函数的定义更改为:
$.fn.investPage.setupFCConfig();
(function( $ ){
$.fn.investPage = function() {
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
};
$.fn.investPage.setupFCConfig = function (){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
}
})( jQuery );
$.fn.investPage();
$.fn.investPage.setupFCConfig();
仅供参考,您还需要修复拼写错误的
。单击您使用了错误的函数作用域
(function( $ ){
$.fn.investPage = function() {
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
};
$.fn.investPage.setupFCConfig = function(){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
};
})( jQuery );
或
第二个返回investPage
对象,您可以从该对象变量访问函数。这样使用它
在$.fn.investPage
的范围内,此
不是$.fn.investPage
对象。因此,您的对象不知道函数setupFCConfig()
但您可以使用:
$.fn.investPage.setupFCConfig = function(){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
};
实现您的目标。将代码更改为:
(function( $ ){
$.fn.investPage = function() {
this.setupFCConfig: function (){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
};
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
};
})( jQuery );
var instance = $.fn.investPage();
instance.setupFCConfig();
您也可以创建一个对象并将其用于名称空间,如下所示
investPage = {
init: function () {
$(".edit").on('click', function(){
alert('edit click func()');
});
$(".cancel").on('click', function(){
alert('cancel click func()');
});
$(".checkout").click(function(){
alert('checkout click func()');
});
},
setupFCConfig: function (){
$('.nestedFunction').click(function(){
alert('setupFCConfig func()');
});
}
}
investPage.init();
investPage.setupFCConfig();
您在setupFCConfig()
中将click
拼错为clicl
有一个拼写错误,clicl
应该是click
这将不起作用,因为您没有investPage
的实例,要像底部一样访问setupFCConfig方法,必须将其更改为investPage的属性,即:$.fn.investPage.setupFCConfig=function