2011-10-03 8 views
1

나는 다음과 같습니다 HTML을 가지고 :Click 이벤트

<h3>Sample</h3> 
<div class="skjemaHjelp" id="sample"><div><h3>3</h3><p>Content goes here</p></div></div> 
<input type="text" class="inputWide" name="formSample" id="formSample" value="" /> 

클래스 skjemaHjelp가 입력 필드의 오른쪽에 posisioned와 함께 스타일입니다 도움말 아이콘. .skjemaHjelp div 내의 콘텐츠가 숨겨져 있습니다.

내 jQuery를은 다음과 같습니다

$('.skjemaHjelp, .skjemaHjelpU').click(function() { 
alert('debug'); 
}): 

경고 박스가 IE를 제외한 모든 브라우저에 나타납니다. 웬일인지 이벤트가 시작되지 않습니다. 나는 이유를 모른다. 해결 방법이 있습니까? JSFiddle http://jsfiddle.net/wJEPV/11/

토마스

+1

(http://html5boilerplate.com/에서 가져온 스 니펫) 일어나고 가능한 해결책을 시험하십시오 –

+0

좋은 생각, 1 초 – OptimusCrime

+0

http://jsfiddle.net/wJEPV/11/ – OptimusCrime

답변

1

IE가 버전 9 (또는 다른 문서 모드의 IE9)보다 낮은 경우 jsFiddle의 유일한 문제는 console 개체가 정의되어 있지 않다는 것입니다.

console.log('loaded');을 제거하면 모든 IE 버전에서 작동합니다.

이전 버전의 IE에서는 console 개체가 개발자 도구를 열 때만 정의됩니다 (F12 키를 누름).

양자 택일로, 당신은 항상 안전하게 사용할 수 있도록하기 위해이 같은 일을 추가 할 수 있습니다 console.* :

// make it safe to use console.log always 
(function(b){function c(){}for(var d="assert,clear,count,debug,dir,dirxml,error,exception,firebug,group,groupCollapsed,groupEnd,info,log,memoryProfile,memoryProfileEnd,profile,profileEnd,table,time,timeEnd,timeStamp,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try 
{console.log();return window.console;}catch(err){return window.console={};}})()); 

당신은 우리가 문제를 볼 수있는 jsfiddle를 사용하여 우리에게 보여 주어야한다

+0

console.log를 삭제했습니다. 정말 고맙습니다. 이상하게도이 기능 만 망 쳤기 때문에 그림 셔플러는 문제없이 작동했습니다. 다시 한 번 감사드립니다! – OptimusCrime

0

은 DIV에 tabindex="0" 속성을 추가합니다. 그러면 click 이벤트가 발생합니다.

+1

좋은 아이디어는, 그러나 아직도 작동하지 않는다. – OptimusCrime