好可怕的头衔,但我想不出另一种描述。
我有以下代码:
jQuery( document ).ready( function( $ )
{
$.myNamespace = {
init: function()
{
$('.button').click(function() {
this.anotherFunction();
});
},
anotherFunction: function()
{
alert('insidefunction');
}
}
$.myNamespace.init();
});
正如你所看到的那样,我试图从init内部调用anotherFunction并且有两种方法我尝试但是没有用。那我怎么能调用那个函数或者我的概念错了呢?
答案 0 :(得分:1)
jQuery( document ).ready( function( $ )
{
$.myNamespace = {
init: function()
{
var a=this;
$('.button').click(function() {
a.anotherFunction();
});
},
anotherFunction: function()
{
alert('insidefunction');
}
}
$.myNamespace.init();
});
答案 1 :(得分:0)
在click处理程序中完全调用它会改变一些事情,因为任何jQuery事件处理程序中的this
都设置为导致该事件的元素。
相反,请尝试使用以下模式:
jQuery(document).ready(function($) {
$.myNamespace = (function() {
function init() {
$('.button').click(function() {
anotherFunction();
});
}
function anotherFunction() {
alert('insidefunction');
}
// return an object with all the functions you want
// available publically as properties. Don't include
// any "private" functions.
return {
init: init,
anotherFunction: anotherFunction
};
})();
$.myNamespace.init();
});