我正在做一些工作,用一個JQuery插件,在用戶輸入textarea框中記下文本。出於某種原因,該插件沒有按照我的預期工作。調試jQuery插件 - 在1.4中工作,似乎不工作在1.7
我是一個合理的JavaScript開發人員,但以前沒有構建過插件。我試圖調試這一個,並找出爲什麼它不工作。
插件將自己描述爲使用jQuery 1.3.x和1.4.x進行測試。我必須使用1.7.1。
我已經能夠使用alert()
的追蹤到這部分的插件 - 我可以看到處理進入了一個尖端點,但似乎沒有進行。或者我可能會誤讀它,因爲我仍在學習如何調試jQuery插件。
在代碼片段中,我添加了註釋,以便我可以從alert
s開始工作,並且我無法在其中工作。
$.fn.NobleCount = function(c_obj, options) {
var c_settings;
var mc_passed = false;
// if c_obj is not specified, then nothing to do here
if (typeof c_obj == 'string') {
// check for new & valid options
c_settings = $.extend({}, $.fn.NobleCount.settings, options);
// was max_chars passed via options parameter?
if (typeof options != 'undefined') {
mc_passed = ((typeof options.max_chars == 'number') ? true : false);
}
// THIS ALWAYS FIRES
console.log("I am here");
// process all provided objects
this.each(function(){
// THIS NEVER FIRES
console.log("I DON'T SEEM TO EVER EXECUTE");
var $this = $(this);
// attach events to c_obj
attach_nobility($this, c_obj, c_settings, mc_passed);
});
}
return this;
};
attach_nobility
函數中的代碼似乎永遠不會運行。
有什麼改變從jQuery 1.4到jQuery 1.7,使這項工作不同?
編輯:這裏的鏈接到original NobleCount jquery plugin頁面
編輯:我打電話這樣的插件:
(function() {
$('#how_to_improve_input').NobleCount('#how_to_improve_count');
}).call(this);
注意:我已經確認了我附加的這個jquery選擇器是一個有效的選擇器。 –
這是什麼,當你console.log/dir它? – epascarello
console.log(this);給出'[]'。我猜想我解釋了很多。從1.4開始,這個''是否已經通過插件更改? –