我不知道如何調用jQuery插件中的函數。 我正在嘗試使社交分享器這個小東西,這將是我的第一個插件,但我很困惑。jQuery插件 - 調用函數返回未捕獲TypeError
Uncaught TypeError: Object [object Object] has no method '_echoCookie'
這裏是做什麼的?
function EchoSoc(element, options) {
this.element = element;
this.options = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this.init();
}
之後,我們有一些東西到init: function() { }
如:
$('body').append(//-->
'<div id="fb-root" />'
+ '<script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return;js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));</script>'
+ '<script src="//platform.twitter.com/widgets.js"></script>'
+ '<script src="//apis.google.com/js/plusone.js"></script>'
// <--
);
而且因爲這是谷歌測試的樣品這裏的最後一張:
$('.echoGoogle').append('<g:plusone size="medium" href="' + this.options.google_url + '" callback="googleCB"></g:plusone>');
然後我們有以下功能:
_echoEvents: function() {
googleCB = function() {
this._echoCookie();
};
},
_echoCookie: function() {
$.cookie('echoSoc', 'done', { expires: 30, path: '/' });
console.log('cookie added');
}
但這根本行不通......
_echoEvents: function() {
googleCB = function() {
this._echoCookie();
};
}
那麼我的問題是,如何調用下面初始化等功能中的功能... this._functionName();只適用於init,不在其下面的函數中。 在此先感謝。
你能分享如何'_echoCookie'和'_echoEvents'被稱爲 – 2013-04-28 12:45:35
echoCookie被suppoused被事件中調用。和_echoEvents在init中調用:function() – dvLden 2013-04-28 12:46:59
@NenaddvL我可以建議你看看http://dev.opera.com/articles/view/javascript-best-practices/?我看到你依賴於一些全局變量,這是非常糟糕的。 – plalx 2013-04-28 13:13:19