X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fsupport.js;h=91ee77d390c4f4789f7b189c08d26c87b929f23c;hb=616aceef84dca3960f6b78680f41bdcf85fa7838;hp=5fa45d230a7673d033f4171dd3dbb8dfeaa1c169;hpb=c2ebd0982609b98d6a389eea792d7a465dccc47a;p=jquery.git diff --git a/src/support.js b/src/support.js index 5fa45d2..91ee77d 100644 --- a/src/support.js +++ b/src/support.js @@ -40,7 +40,8 @@ // Make sure that element opacity exists // (IE uses filter instead) - opacity: a.style.opacity === "0.55", + // Use a regex to work around a WebKit issue. See #5145 + opacity: /^0.55$/.test( a.style.opacity ), // Verify style float existence // (IE uses styleFloat instead of cssFloat) @@ -81,6 +82,7 @@ // Figure out if the W3C box model works as expected // document.body must exist before we can do this + // TODO: This timeout is temporary until I move ready into core.js. jQuery(function(){ var div = document.createElement("div"); div.style.width = div.style.paddingLeft = "1px"; @@ -91,6 +93,26 @@ div = null; }); + // Technique from Juriy Zaytsev + // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/ + var eventSupported = function( eventName ) { + var el = document.createElement("div"); + eventName = "on" + eventName; + + var isSupported = (eventName in el); + if ( !isSupported ) { + el.setAttribute(eventName, "return;"); + isSupported = typeof el[eventName] === "function"; + } + el = null; + + return isSupported; + }; + + jQuery.support.submitBubbles = eventSupported("submit"); + jQuery.support.changeBubbles = eventSupported("change"); + jQuery.support.focusBubbles = eventSupported("focus"); + // release memory in IE root = script = div = all = a = null; })();