使用jQuery,我最近想知道这两个相似的代码片段是否相同:
$('form[name="unique-name"]').submit(); // (call jQuery.submit() on the
// collection of 1 form node)
VS
$('form[name="unique-name"]')[0].submit(); // (call the native HTMLFormElement.submit()
// DOM method on the single form in the collection)
两者都在我的代码(IIRC)中产生相同的结果,但无论我开始怀疑jQuery是否只是传递给本机DOM方法,或者它是否正在完全做其他事情。在jQuery源代码中进行挖掘之后,我找不到任何出现的本机DOM submit()被调用。
在阅读the docs并进行搜索后,我仍然无法确定jQuery是否提供了“更好”的提交(),或者他们是否只是在整个集合中传递给原生DOM submit()。这是什么?如果可能的话,请指出我的来源或文件。
答案 0 :(得分:3)
是的,除非你致电event.stopPropagation()
,否则jQuery会起泡事件。
我有根据的猜测是submit()
:
postDispatch: function( event ) {
// If form was submitted by the user, bubble the event up the tree
if ( event._submit_bubble ) {
delete event._submit_bubble;
if ( this.parentNode && !event.isTrigger ) {
jQuery.event.simulate( "submit", this.parentNode, event, true );
}
}
},