본문 바로가기
Javascript

IE label+img 버그 해결

by @hohoya33 2014년 02월 17일
	// IE label+img 버그 해결
	(function(){
		if(document.all && navigator.appVersion.indexOf("MSIE")>-1 && navigator.appVersion.indexOf("Windows")>-1){
			var domLabel = document.getElementsByTagName("label");
			var len = domLabel.length;
			for(var i=0; i < len ; i++){
				//console.log(domLabel[i].childNodes.item(0).tagName );
				/*
				if(domLabel[i].hasChildNodes() && domLabel[i].childNodes.item(0).tagName == "IMG"){
					domLabel[i].childNodes.item(0).forid = domLabel[i].htmlFor;
					domLabel[i].childNodes.item(0).onclick = function(){
						var domInput = document.getElementById(this.forid);
						switch(domInput.type){
							case "radio": domInput.click(); break;
							case "checkbox": domInput.click(); break;
							case "text": case "password": case "textarea": domInput.focus(); break;
						}
					}
				}
				*/
				if(domLabel[i].hasChildNodes() && $(domLabel[i]).find("img")[0]){
					$(domLabel[i]).find("img").attr({ "forid" : (domLabel[i].htmlFor) });
					$(domLabel[i]).find("img").bind("click", function(evt){
						var domInput = $("#" + (this.forid));
						switch(domInput.attr("type")){
							case "radio": domInput.click(); break;
							case "checkbox": domInput.click(); break;
							case "text": case "password": case "textarea": domInput.focus(); break;
						}
					});
				}
				/*
				*/
			}
		}
	})();

개의 댓글