여러 개별 인스턴스를 지원하기 위해 플러그인을 작성했다고해도이 jQuery 플러그인의 다른 인스턴스가 수정되는 이상한 문제가 있습니다.다른 jQuery 플러그인 인스턴스의 속성이 덮어 쓰기 중임
나는 베어 필수로 코드를 제거했습니다, 당신은 여기를 테스트 할 수 http://jsbin.com/ajifoh/4/edit#html,live
당신이 콘솔에 leng: 0
를 표시해야합니다 텍스트 상자 중 하나에서 키를 누르면,하지만 이후 처음 웬일인지 어떤 이유에서든 첫 번째 트리거를 시작했습니다. 두 번째 것도 첫 번째 삽입 된 모든 콤보 파트를 가지고 있습니다 ... 무엇을 잘못 했습니까?
;(function($, window, document, undefined){
var KeyCombinator = function(elem, options){
this.$elem = $(elem);
};
function ComboPart(keyCode){
if (keyCode !== undefined){
this.keyCode = keyCode;
}
}
function ComboData(){
this.comboParts= [];
}
function set_insert(array, value){
array.push(value);
}
KeyCombinator.prototype = {
comboData: new ComboData(),
eval_key_event: function(e){
set_insert(this.comboData.comboParts, new ComboPart(e.keyCode));
},
init: function(){
var $elem = this.$elem;
var that = this;
$elem.keydown(function(e){
console.log('leng', that.comboData.comboParts.length);
that.eval_key_event(e);
});
}
};
$.fn.makeKeyCombinator = function(options) {
return this.each(function() {
new KeyCombinator(this, options).init();
});
};
})(jQuery, window, document);