在插入DOM的元素上调用函数

时间:2012-10-01 05:53:57

标签: javascript jquery

我无法控制何时以及如何将此元素添加到DOM中。但是当它确实被添加时,我想在它上面调用一个jQuery函数。我希望匹配form[data-validate]元素,然后调用我写的jQuery函数:validate

我提出的临时解决方案:

document.addEventListener('DOMNodeInserted', function(event) {
  if (event.target.nodeName === 'FORM' && $(event.target).data('validate')) {
    return $(event.target).validate();
  }
}, false);

根据https://developer.mozilla.org/en-US/docs/DOM/Mutation_events,此代码将“极大地降低对该文档的进一步DOM修改的性能(使它们慢1.5到7倍!)”并且浏览器兼容性相当差。

有人能做得更好吗?

1 个答案:

答案 0 :(得分:0)

尝试委派活动..

$(document).on('DOMNodeInserted' , 'form' , function(event){
    if (event.target.nodeName === 'FORM' && $(event.target).data('validate')) {
       return $(event.target).validate();
    }
     return false;
});

这将确保在创建新表单时调用该函数...