1

使用 jQuery,我最近想知道这两个相似的代码片段是否等效:

$('form[name="unique-name"]').submit(); // (call jQuery.submit() on the 
                                        //  collection of 1 form node)

对比

$('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() 被调用的地方。

在阅读文档和搜索之后,我仍然无法确定 jQuery 是否提供了“更好”的 submit() 或者它们是否只是通过整个集合传递到本机 DOM submit()。它是哪一个?如果可能,请指出我的来源或文档。

4

1 回答 1

3

是的,除非你调用event.stopPropagation().

我有根据的猜测是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 );
            }
        }
    },
于 2013-03-28T03:39:27.823 回答