我有一个奇怪的问题,如果我触发 .change 里面的代码 .change 执行 5 次,直到它跳回来。在调试时我可以看到它是如何在第 15 行和第 25 行之间跳转的。首先我想知道为什么$(this).addClass('teiedit');
不将 teiedit 类添加到表单选择类中,其次为什么 .trigger 执行 .change 内的代码 5 次?
代码在 pastebin 上:http: //pastebin.com/u8xmQZXU
我有一个奇怪的问题,如果我触发 .change 里面的代码 .change 执行 5 次,直到它跳回来。在调试时我可以看到它是如何在第 15 行和第 25 行之间跳转的。首先我想知道为什么$(this).addClass('teiedit');
不将 teiedit 类添加到表单选择类中,其次为什么 .trigger 执行 .change 内的代码 5 次?
代码在 pastebin 上:http: //pastebin.com/u8xmQZXU
I personnaly prefer watching events with data :
if(!$('.form-select').data('eventAttached')){
$('.form-select').data('eventAttached',true);
$('.form-select').change(function() {
....
});
}
simple, effective, and not technical. Although namespacing is better.
attach 调用了多少次?您可能想尝试这样的事情来确保事件只绑定一次而不是 5 次:
var textarea = jQuery("#edit-body-und-0-value");
var grippie = textarea.parents('.resizable-textarea').find('.grippie');
var filter = jQuery('#edit-body-und-0-format--2');
$('.form-select').off();
// check if selection in text formats changes
$('.form-select').change(function() {
....
});
或者你可以尝试命名你的事件