2011-02-16 5 views
0

html select의 변경을 감지하는 테스트 스크립트를 추가했으나 실행되지 않았습니다.선택 가져 오기 표 셀에서 선택 값

select는 테이블 셀 내에 있으며 'symselect'클래스를 가지고 있습니다. 테이블 ID는 : flogtable이고 select는 첫 번째 행에 있습니다. 내가 추가

JQuery와 테스트 기능은 다음과 같습니다

$('.symselect').change(function() { 
      alert('Handler for .change() called.'); 
    }); 
+0

아래의 답변이 작동하지 않는 경우 질문에 HTML 마크 업을 제공해야합니다. – user113716

답변

1

당신은 domready 블록 내에서 해당 코드를 호출하고 있습니까?

$(function() { 
    $('.symselect').change(function() { 
    alert('Handler for .change() called.'); 
    }); 
}); 
+0

나는 이것이 문제라고 생각한다. – user113716

+0

스크립트 블록 내부의 헤더에 있습니다. 잘못인가? –

+0

글쎄,하지만 domready 함수 내에서 포장해야합니다. 무슨 일이 일어나고있는가 $ ('. symselect')는 select 요소가 아직 존재하지 않기 때문에 아무것도 일치하지 않습니다. 위에 표시된 DOMready 함수 내에서 코드를 래핑하면 DOM이 로딩을 마칠 때까지 코드가 실행되지 않습니다. 즉, 요소가 작동 할 준비가되었음을 의미합니다. – simshaun

1

나는 다음과 같은 일을해야 생각 : 내가 할 경우

$('#flogtable select.symselect').change(
    function() { 
     alert('Handler for `change()` called.'); 
    }); 
+0

선택자 * more *를 지정한 경우를 제외하고는 일치 가능성이 적습니다. ; o) – user113716

+0

@ 패트릭 : 그렇습니다. 그러나 특정 선택기를 사용하면 개념이 작동한다는 것을 알 수 있습니다. 우리가 그것이 작동한다는 것을 알게되면 우리는 그것을 더 일반적으로 만들 수 있습니다. –

+1

내 요점은 핸들러가 실행되지 않기 때문에'.symselect'가 페이지의 * all *'symselect' 엘리먼트를 선택할 것이고, 선택자를 페이지의 더 작은 부분으로 좁히도록 변경하면 아마 ' 문제 해결에 도움이되지 않습니다 (OP가 결국 사용해야하는 선택자 일 수도 있음). – user113716

0

:

$(function(){ 
    $('.symselect').change(function() { 
    alert('Handler for .change() called.'); 
    }); 
}); 

가 작동합니다.

관련 문제