2012-04-17 3 views
0

jQuery 1.7.1을 사용하고 있습니다. 다음 코드는 내 선택 메뉴에 .click 이벤트를 추가하는 추가 옵션을 추가합니다. 이 코드는 firefox/ie9에서 완벽하게 작동하지만 새로운 옵션 추가를 클릭하면 ie7/8에 다음 오류가 표시됩니다. 나는 행운도없이 선택 이벤트를 시도했다. 구문 오류, 인식 할 수없는 표현 : # JQuery와-1.7.1.js, 라인 4179 문자 2jQuery 클릭이 ie7/8의 select 옵션과 함께 작동하지 않습니다.

사람은 IE7과 같은 기존 브라우저에서이 작품/8

$("select").append($('<option></option>').text("Add New Option").click(function(){ 
    alert("test"); 
})); 

JS 오류 SCRIPT5022을 만드는 방법을 알고 있나요

JS 바이올린 예

http://jsfiddle.net/gchristman/gucgG/3/

+0

왜'option'에 대한'onclick' 핸들러가 필요합니까. 대신 select 나 on에'onchange' 핸들러가 있어야합니다. 클릭 할 때 처리해야한다면 select에서'click' 핸들러를 사용하십시오. –

+0

Add New Option을 선택한 경우에만 click 이벤트를 처리해야합니다. 아래에 설명 된대로 onChange는이 경우 작동하지 않습니다. jsfiddle에서 onClick으로 코드를 테스트 한 결과 제대로 작동하는 것으로 보입니다. 왜 내 앱에서 아직 작동하지 않는지 잘 모르겠습니다. –

답변

2

이 부착하지 마십시오 단지 선택의 변경 이벤트에 가입하고이 항목이 추가되는 경우 확인 옵션에 이벤트를 클릭? 변경 사항을 식별하기 위해 새 항목의 값을 0으로 지정했습니다. IE7/8을 사용하는 자바 스크립트에 대한

$("select").append($('<option></option').text("Add New Option").val(0)); 

$("select").change(function() { 
    if $("select option:selected").val() == 0) { 
     alert("test"); 
    } 
}); 
+0

그냥이 코드를 사용해 보았습니다. 모든 변경 사항에 대해 경고한다는 점을 제외하면 레거시 즉 브라우저에서 작동합니다. 나는 그것을 쉽게 고칠 수있다. –

+0

멋지다. .val()에있는 내용을 쿼리하면 parseInt 또는 check == "0"인 문자열 일 수 있습니다. :) – mattytommo

1

시도

.on("click", function() { 
    alert("test"); 
})); 
,

대신 : 그 작동하는 경우

.click(function() { 
    alert("test"); 
})); 

참조?

+1

라이브가 1.7에서 더 이상 사용되지 않음 : – mattytommo

+1

Opps가 코드를 많이 바꿔야 함 : P – Drakkainen

+1

@mattytommo가 말하길, jQuery 1.7.1에서 Live가 대체되면 http://api.jquery.com에서 "on"을 사용합니다./on/ –

3

onchange 이벤트를 사용해야합니다. 대신을 시도해보십시오

$("select").append($('<option></option>').text("Add New Option")).change(function(){ 
    alert("test"); 
})); 

관련 : Click event on select option element in chrome

+0

변경 이벤트를 선택 사항이 아닌 새 옵션에 연결하고 있습니까? – mattytommo

+0

@mattytommo 감사합니다. – jorgebg

+0

변경 이벤트가 작동하지 않습니다. 클릭을 사용하는 이유는 무엇입니까? –

0

: JS fiddle

<select id="sel" onchange="test(this.value)"><option>option1</option></select> 

<script language="javascript"><!-- 
//<![CDATA[ 
s=document.getElementById("sel"); 
var opt = document.createElement('option'); 
opt.value = "add"; 
opt.innerHTML = "Add New Option"; 
s.appendChild(opt); 

function test(val){ 
    if (val = "add"){ 
     alert("test"); 
    } 
} 

//]]> 
--></script> 
관련 문제