2012-07-06 5 views
4

안녕하세요 전문가 한 가지 문제가있어서 도움이 필요합니다.onClick 이벤트가 사파리 브라우저에서 작동하지 않지만 IE/FF/Chrome/Opera 브라우저에서 정상적으로 작동합니까?

IE/FF/Chrome 브라우저에서 잘 작동하는 javascript onClick 이벤트를 사용하고 있지만 Safari 브라우저에서 작동하지 않아서 2 일간 낭비했지만 해결할 수 없으므로 긴급한 도움이 필요합니다. 나를 위해. 다음과 같이

내가 사용하고있는 코드는 다음과 같습니다 (? 오른쪽)이 예상대로 순수하게 키보드를 통해 선택의 변경도 이벤트를 트리거 할 수 있도록하므로

heartSelectHandler = { 
    clickCount : 0, 
    action : function(select) 
    { 
     heartSelectHandler.clickCount++; 
     if(heartSelectHandler.clickCount%2 == 0) 
     { 
      selectedValue = select.options[select.selectedIndex].value; 
      heartSelectHandler.check(selectedValue); 
     } 
    }, 
    blur : function() // needed for proper behaviour 
    { 
     if(heartSelectHandler.clickCount%2 != 0) 
     { 
      heartSelectHandler.clickCount--; 
     } 
    }, 
    check : function(value) 
    { 
     alert('Changed! -> ' + value); 
    } 
} 

<select onclick="javascript:heartSelectHandler.action(this);" onblur="javascript:heartSelectHandler.blur()" id="heart" data-role="none"> 
    <?php for ($i = 20; $i <= 150; $i++): ?> 
    <option value="<?php echo $i; ?>"><?php echo $i; ?></option> 
    <?php endfor; ?> 
</select> 
+4

당신은 당신의 코드를 포맷 할 수 없습니다 좀 더? 그래서 우리는 동쪽으로 50km 여행 할 필요가 없습니다. –

+0

더 나은 가독성을 위해 질문에 코드를 다시 포맷했습니다. :) – techfoobar

+0

on click 이벤트에서'javascript :'를 제거해보십시오. 함수 호출 만 유지하십시오. – d4rkpr1nc3

답변

1

사용이 대신 온 클릭의 onchange이다 .

즉 사용 :

onchange="javascript:heartSelectHandler.action(this);" 

대신 :

onclick="javascript:heartSelectHandler.action(this);" 
+0

onChange는 내가 28을 선택한 후 다시 한 번 선택한 다음 28을 선택하고 선택하면 효과가 없습니다 onChange 내가 값을 바꿀 때만 일한다. 그래서 나는 onChange 이벤트를 사용할 수 없다. –

+0

Ok. 예, 값이 변경된 경우에만 onchange가 실행됩니다. – techfoobar

+0

thanks techfoobar –

관련 문제