[JQUERY] jQuery를 IE에서 .change ()를 인식하기
JQUERYjQuery를 IE에서 .change ()를 인식하기
해결법
-
1..click 대신 .change로 사용해보십시오.
.click 대신 .change로 사용해보십시오.
-
2.대신 변화의 클릭 이벤트를 사용하는 데 문제가 동일한 무선 상자를 선택하면 사용자가 이벤트를 얻을 수있다 (즉, 실제로 변경되지 않았습니다). 새 값이 이전과는 다른 것을 확인할 경우에 필터링 할 수 있습니다. 나는이 조금 성가신 찾을 수 있습니다.
대신 변화의 클릭 이벤트를 사용하는 데 문제가 동일한 무선 상자를 선택하면 사용자가 이벤트를 얻을 수있다 (즉, 실제로 변경되지 않았습니다). 새 값이 이전과는 다른 것을 확인할 경우에 필터링 할 수 있습니다. 나는이 조금 성가신 찾을 수 있습니다.
당신은 변경 이벤트를 사용하는 경우, 당신은 당신이 IE의 다른 요소를 클릭 한 후에는 변화를 인식 할 수 있음을 알 수 있습니다. 당신은 클릭 이벤트에서 () 흐림 호출 할 경우,이 화재로 변경 이벤트가 발생할 수 있습니다 (라디오 상자가 실제로있는 경우에만 변경).
여기에 내가 그것을하고있어 방법은 다음과 같습니다
// This is the hack for IE if ($.browser.msie) { $("#viewByOrg").click(function() { this.blur(); this.focus(); }); } $("#viewByOrg").change(function() { // Do stuff here });
지금 당신은 정상처럼 변경 이벤트를 사용할 수 있습니다.
편집 : 접근성 문제 (아래 바비의 의견을 참조) 방지하기 위해 초점 ()에 대한 호출을 추가했습니다.
-
3.당신이 IE의 onpropertychange 이벤트를 시도? 이 차이가 있는지 저는 잘 모릅니다하지만 그것은 아마도 가치의 시도이다. 값이 JS 코드를 통해 업데이트 할 때 IE는 변경 이벤트를 트리거하지 않지만 아마도 onpropertychange이 인스턴스에서 작동합니다.
당신이 IE의 onpropertychange 이벤트를 시도? 이 차이가 있는지 저는 잘 모릅니다하지만 그것은 아마도 가치의 시도이다. 값이 JS 코드를 통해 업데이트 할 때 IE는 변경 이벤트를 트리거하지 않지만 아마도 onpropertychange이 인스턴스에서 작동합니다.
$("#viewByOrg").bind($.browser.msie? 'propertychange': 'change', function(e) { e.preventDefault(); // Your code here });
-
4.이 역시 작동합니다 :
이 역시 작동합니다 :
$(document).ready(function(){ $(".hiddenOnLoad").hide(); $("#viewByOrg, #viewByProduct").bind(($.browser.msie ? "click" : "change"), function () { $(".visibleOnLoad").show(); $(".hiddenOnLoad").hide(); }); });
감사 부두. 이것은 매우 도움이되었다.
-
5.다른 브라우저는 onchange이다에서 IE에서 당신은 클릭 이벤트를 사용해야합니다. 귀하의 기능이 될 수
다른 브라우저는 onchange이다에서 IE에서 당신은 클릭 이벤트를 사용해야합니다. 귀하의 기능이 될 수
$(document).ready(function(){ $(".hiddenOnLoad").hide(); var evt = $.browser.msie ? "click" : "change"; $("#viewByOrg").bind(evt, function () { $(".visibleOnLoad").show(); $(".hiddenOnLoad").hide(); }); $("#viewByProduct").bind(evt, function () { $(".visibleOnLoad").hide(); $(".hiddenOnLoad").show(); }); });
-
6.이 플러그인을 추가
이 플러그인을 추가
jQuery.fn.radioChange = function(newFn){ this.bind(jQuery.browser.msie? "click" : "change", newFn); }
그때
$(function(){ $("radioBtnSelector").radioChange(function(){ //do stuff }); });
-
7.내가 입력 텍스트와 같은 문제가 있었다.
내가 입력 텍스트와 같은 문제가 있었다.
나는 변경 :
$("#myinput").change(function() { "alert('I changed')" });
...에
$("#myinput").attr("onChange", "alert('I changed')");
모든 것이 나를 위해 잘 작동합니다!
-
8.이 요소를 클릭 할 때 변경 이벤트를 해고 IE를 말할 수있는 간단한 방법입니다 :
이 요소를 클릭 할 때 변경 이벤트를 해고 IE를 말할 수있는 간단한 방법입니다 :
if($.browser.msie) { $("#viewByOrg").click(function() { $(this).change(); }); }
좀 더 폼 요소와 함께 작동하도록 더 일반적인 일이를 확장 할 수 :
if($.browser.msie) { $("input, select").click(function() { $(this).change(); }); $("input, textarea").keyup(function() { $(this).change(); }); }
-
9.나는이 IE 알려진 문제인지 확인 꽤 있어요. 이 문제를 해결해야하는 온 클릭 이벤트에 대한 처리기를 추가 :
나는이 IE 알려진 문제인지 확인 꽤 있어요. 이 문제를 해결해야하는 온 클릭 이벤트에 대한 처리기를 추가 :
$(document).ready(function(){ $(".hiddenOnLoad").hide(); $("#viewByOrg").change(function () { $(".visibleOnLoad").show(); $(".hiddenOnLoad").hide(); }); $("#viewByOrg").click(function () { $(".visibleOnLoad").show(); $(".hiddenOnLoad").hide(); }); $("#viewByProduct").change(function () { $(".visibleOnLoad").hide(); $(".hiddenOnLoad").show(); }); $("#viewByProduct").click(function () { $(".visibleOnLoad").hide(); $(".hiddenOnLoad").show(); }); });
-
10.IE에서 힘 라디오와 체크 박스는 "변화"이벤트를 트리거합니다 :
IE에서 힘 라디오와 체크 박스는 "변화"이벤트를 트리거합니다 :
if($.browser.msie && $.browser.version < 8) $('input[type=radio],[type=checkbox]').live('click', function(){ $(this).trigger('change'); });
-
11.JQuery와 1.6로이 그것이 그것에 대한 생각 ... 감사합니다 신하지만 고정하지 않도록 때 ... 더 이상 문제가되지 않습니다
JQuery와 1.6로이 그것이 그것에 대한 생각 ... 감사합니다 신하지만 고정하지 않도록 때 ... 더 이상 문제가되지 않습니다
-
12.당신이 1.5.1에 jQuery를 버전을 변경하는 경우, 당신은 당신의 코드를 조정할 필요가 없습니다. 그리고 IE9은에 완벽 듣다 줘야 :
당신이 1.5.1에 jQuery를 버전을 변경하는 경우, 당신은 당신의 코드를 조정할 필요가 없습니다. 그리고 IE9은에 완벽 듣다 줘야 :
$(SELECTOR).change(function() { // Shizzle });
http://code.jquery.com/jquery-1.5.1.min.js
-
13.클릭 작품과 트릭 ...하지만 당신은 라디오의 올바른 상태를 얻거나 당신이 사용할 수있는 체크 박스하려는 경우 :
클릭 작품과 트릭 ...하지만 당신은 라디오의 올바른 상태를 얻거나 당신이 사용할 수있는 체크 박스하려는 경우 :
(function($) { $('input[type=checkbox], input[type=radio]').live('click', function() { var $this = $(this); setTimeout(function() { $this.trigger('changeIE'); }, 10) }); })(jQuery); $(selector).bind($.browser.msie && $.browser.version <= 8 ? 'changeIE' : 'change', function() { // do whatever you want })
-
14.IMO 대신 변화의 클릭을 사용하면 즉 행동이 다를 수 있습니다. 차라리 타이머 (setTimout)를 사용하여 변경 이벤트 동작을 에뮬레이션 것입니다.
IMO 대신 변화의 클릭을 사용하면 즉 행동이 다를 수 있습니다. 차라리 타이머 (setTimout)를 사용하여 변경 이벤트 동작을 에뮬레이션 것입니다.
같은 (경고 - 메모장 코드) :
if ($.browser.msie) { var interval = 50; var changeHack = 'change-hac'; var select = $("#viewByOrg"); select.data(changeHack) = select.val(); var checkVal=function() { var oldVal = select.data(changeHack); var newVal = select.val(); if (oldVal !== newVal) { select.data(changeHack, newVal); select.trigger('change') } setTimeout(changeHack, interval); } setTimeout(changeHack, interval); } $("#viewByOrg").change(function() { // Do stuff here });
-
15.그것은 나를 위해 작동이 시도
그것은 나를 위해 작동이 시도
$("#viewByOrg") .attr('onChange', $.browser.msie ? "$(this).data('onChange').apply(this)" : "") .change( function(){if(!$.browser.msie)$(this).data('onChange').apply(this)} ) .data('onChange',function(){alert('put your codes here')});
-
16.이 사람을 도움이 될 수 있습니다 : 대신 폼의 ID로 시작하는, 선택 ID를 대상으로이 같은 변화에 양식을 제출 :
이 사람을 도움이 될 수 있습니다 : 대신 폼의 ID로 시작하는, 선택 ID를 대상으로이 같은 변화에 양식을 제출 :
<form id='filterIt' action='' method='post'> <select id='val' name='val'> <option value='1'>One</option> <option value='2'>Two</option> <option value='6'>Six</option> </select> <input type="submit" value="go" /> </form>
그리고 jQuery를 :
$('#val').change(function(){ $('#filterIt').submit(); });
(물론, 제출 버튼이 경우 자바 스크립트를 사용할 수 없습니다, 선택 사항입니다)
-
17.다음을 시도해보십시오
다음을 시도해보십시오
.bind($.browser.msie ? 'click' : 'change', function(event) {
-
18.IE에 대한 JQuery와의 .change () 함수 전에 .focus () 또는 ALL 기타 사항 서보 -OFF ()를 사용하지 말고, 다음 메신저 내 사이트에서 사용, 잘 작동합니다.
IE에 대한 JQuery와의 .change () 함수 전에 .focus () 또는 ALL 기타 사항 서보 -OFF ()를 사용하지 말고, 다음 메신저 내 사이트에서 사용, 잘 작동합니다.
감사
-
19.
//global var prev_value = ""; $(document).ready(function () { if (jQuery.browser.msie && $.browser.version < 8) $('input:not(:submit):not(:button):not(:hidden), select, textarea').bind("focus", function () { prev_value = $(this).val(); }).bind("blur", function () { if($(this).val() != prev_value) has_changes = true; }); }
-
20.IE에서 잘 심지어 처음 작업하는 각 대신 변경 / 클릭의 사용뿐만 아니라 다른 브라우저로 시도하십시오
IE에서 잘 심지어 처음 작업하는 각 대신 변경 / 클릭의 사용뿐만 아니라 다른 브라우저로 시도하십시오
첫 번째 시간이 작동하지 않음
$("#checkboxid").**change**(function () { });
근무 미세도 처음
$("#checkboxid").**each**(function () { });
from https://stackoverflow.com/questions/208471/getting-jquery-to-recognise-change-in-ie by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 크롬 catch되지 않은 구문 오류 : 예기치 않은 토큰 불법 [중복] (0) | 2020.10.12 |
---|---|
[JQUERY] 가장 좋은 방법은 jQuery를 모두 선택 체크 박스 값을 얻으려면 [중복] (0) | 2020.10.12 |
[JQUERY] 동적으로 생성 된 요소에 날짜 선택기 ()를 넣어 - JQuery와 / JQueryUI (0) | 2020.10.12 |
[JQUERY] 자바 스크립트에서 시간 지연을 설정하는 방법 (0) | 2020.10.12 |
[JQUERY] JSON 개체에 jQuery의 발견 ()를 사용 (0) | 2020.10.12 |