我无法控制何时以及如何将此元素添加到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倍!)”并且浏览器兼容性相当差。
有人能做得更好吗?
答案 0 :(得分:0)
尝试委派活动..
$(document).on('DOMNodeInserted' , 'form' , function(event){
if (event.target.nodeName === 'FORM' && $(event.target).data('validate')) {
return $(event.target).validate();
}
return false;
});
这将确保在创建新表单时调用该函数...