X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fevent.js;h=89067288386cea43ab822950a2cf8b27cd32407e;hb=45b8d2531ef6a7c775ca3bac06bcad6ffc5419e3;hp=9a7c7034aa66ac4fd4a4311e981e4559edfdfd3b;hpb=48164ee603bc4ec17f2fb72571c531ebdc7213ae;p=jquery.git diff --git a/test/unit/event.js b/test/unit/event.js index 9a7c703..8906728 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -47,15 +47,11 @@ test("bind(), no data", function() { test("bind(), iframes", function() { // events don't work with iframes, see #939 - this test fails in IE because of contentDocument - // var doc = document.getElementById("iframe").contentDocument; - // - // doc.body.innerHTML = ""; - // - // var input = doc.getElementsByTagName("input")[0]; - // - // jQuery(input).bind("click",function() { - // ok( true, "Binding to element inside iframe" ); - // }).click(); + var doc = jQuery("#loadediframe").contents(); + + jQuery("div", doc).bind("click", function() { + ok( true, "Binding to element inside iframe" ); + }).click().unbind('click'); }); test("bind(), trigger change on select", function() { @@ -194,6 +190,11 @@ test("unbind(type)", function() { $elem.bind('error error2',error) .unbind('error error2') .trigger('error').triggerHandler('error2'); + + message = "unbind without a type or handler"; + $elem.bind("error error2.test",error) + .unbind() + .trigger("error").triggerHandler("error2"); }); test("unbind(eventObject)", function() { @@ -489,7 +490,7 @@ test("toggle(Function, Function, ...)", function() { }); test(".live()/.die()", function() { - expect(49); + expect(52); var submit = 0, div = 0, livea = 0, liveb = 0; @@ -561,6 +562,24 @@ test(".live()/.die()", function() { jQuery("div").die("click"); jQuery("div").die("submit"); + // Test binding with a different context + var clicked = 0, container = jQuery('#main')[0]; + jQuery("#foo", container).live("click", function(e){ clicked++; }); + jQuery("div").trigger('click'); + jQuery("#foo").trigger('click'); + jQuery("#main").trigger('click'); + jQuery("body").trigger('click'); + equals( clicked, 2, "live with a context" ); + + // Make sure the event is actually stored on the context + ok( jQuery.data(container, "events").live, "live with a context" ); + + // Test unbinding with a different context + jQuery("#foo", container).die("click"); + jQuery("#foo").trigger('click'); + equals( clicked, 2, "die with a context"); + + // Verify that return false prevents default action jQuery("#anchor2").live("click", function(){ return false; }); var hash = window.location.hash; @@ -633,14 +652,14 @@ test(".live()/.die()", function() { // bind one pair in one order jQuery('span#liveSpan1 a').live('click', function(){ lived++; return false; }); - jQuery('span#liveSpan1').live('click', function(){ livee++; }); + jQuery('span#liveSpan1').live('click', function(){ livee++; }); jQuery('span#liveSpan1 a').click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler don't." ); // and one pair in inverse - jQuery('#liveHandlerOrder span#liveSpan2').live('click', function(){ livee++; }); + jQuery('#liveHandlerOrder span#liveSpan2').live('click', function(){ livee++; }); jQuery('#liveHandlerOrder span#liveSpan2 a').live('click', function(){ lived++; return false; }); jQuery('span#liveSpan2 a').click();