Make sure custom events named "submit" can be bound to non DOM elements in IE too...
[jquery.git] / test / unit / event.js
index 5efa0ec..a647e5f 100644 (file)
@@ -265,6 +265,36 @@ test("live/die(Object), delegate/undelegate(String, Object)", function() {
        equals( mouseoverCounter, 4, "die" );
 });
 
+test("live/delegate immediate propagation", function() {
+       expect(2);
+       
+       var $p = jQuery("#firstp"), $a = $p.find("a:first"), lastClick;
+       
+       lastClick = "";
+       $a.live( "click", function(e) { 
+               lastClick = "click1"; 
+               e.stopImmediatePropagation();
+       });
+       $a.live( "click", function(e) {
+               lastClick = "click2";
+       });
+       $a.trigger( "click" );
+       equals( lastClick, "click1", "live stopImmediatePropagation" );
+       $a.die( "click" );
+       
+       lastClick = "";
+       $p.delegate( "a", "click", function(e) { 
+               lastClick = "click1"; 
+               e.stopImmediatePropagation();
+       });
+       $p.delegate( "a", "click", function(e) {
+               lastClick = "click2";
+       });
+       $a.trigger( "click" );
+       equals( lastClick, "click1", "delegate stopImmediatePropagation" );
+       $p.undelegate( "click" );
+});
+
 test("bind(), iframes", function() {
        // events don't work with iframes, see #939 - this test fails in IE because of contentDocument
        var doc = jQuery("#loadediframe").contents();
@@ -463,7 +493,7 @@ test("bind(name, false), unbind(name, false)", function() {
 });
 
 test("bind()/trigger()/unbind() on plain object", function() {
-       expect( 7 );
+       expect( 8 );
 
        var obj = {};
 
@@ -473,8 +503,13 @@ test("bind()/trigger()/unbind() on plain object", function() {
        // Make sure it doesn't complain when no events are found
        jQuery(obj).unbind("test");
 
-       jQuery(obj).bind("test", function(){
-               ok( true, "Custom event run." );
+       jQuery(obj).bind({
+               test: function() {
+                       ok( true, "Custom event run." );
+               },
+               submit: function() {
+                       ok( true, "Custom submit event run." );
+               }
        });
 
        var events = jQuery(obj).data("__events__");
@@ -486,8 +521,10 @@ test("bind()/trigger()/unbind() on plain object", function() {
 
        // Should trigger 1
        jQuery(obj).trigger("test");
+       jQuery(obj).trigger("submit");
 
        jQuery(obj).unbind("test");
+       jQuery(obj).unbind("submit");
 
        // Should trigger 0
        jQuery(obj).trigger("test");