jquery .trigger运行5次

时间:2012-06-12 13:48:21

标签: jquery triggers

我有一个奇怪的问题,如果我触发。更改里面的代码.change执行5次,直到它跳回来。在调试时,我可以看到它是如何在第15行和第25行之间跳转的。首先,我想知道为什么$(this).addClass('teiedit');没有将类teiedit添加到表单选择类,第二个为什么.trigger执行内部代码。改变5次?

代码在pastebin上:http://pastebin.com/u8xmQZXU

2 个答案:

答案 0 :(得分:0)

连接多少次?你可能想尝试这样的事情来确保事件只被绑定一次而不是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() {
    ....
});

或者您可以尝试namespacing您的活动

答案 1 :(得分:0)

我个人更喜欢用数据观看事件:

if(!$('.form-select').data('eventAttached')){
    $('.form-select').data('eventAttached',true);

    $('.form-select').change(function() {
        ....
    });
}
简单,有效,而非技术性。虽然命名空间更好。