2012-05-22 2 views
1

이것은 jQuery를하다 :왜 jQuery가 잘못된 페이지를 표시합니까?

$(document).on('change', '.ui-slider-switch', function() { 
    if ($(this).val() == 'on') { 
     $("#content1").hide(); 
     $("#content2").show(); 
    } 
    else { 
     $("#content1").show(); 
     $("#content2").hide(); 
    } 
}); 

내 HTML :

<div id="switch" data-role="fieldcontain">  
    <select name="slider" id="flip-a" data-role="slider"> 
     <option value="off"></option> 
     <option value="on"></option> 
    </select> 
</div> 

내 사이트에 가끔 사용자 정의 URL을 사용 (그리고 $ _GET와 그것의 데이터를 얻을). 난 항상 대신 $("#content1").show();

+0

다시로드 한 직후입니까? 또는 다시로드 할 때마다 몇 번이고, 변경할 때마다 계속 content2 만 표시됩니까? 이 점을 분명히하십시오. 코드가 실행되고 있는지 확인하십시오 (페이지가 다시로드 된 후 변경 이벤트가 발생하지 않았거나 잘못 입력 했습니까?) – mgibsonbr

+0

$ _GET [ 'some_param']을 사용하여'option' 중 하나를'selected'로 설정합니까? ? – Vishal

+0

@mgibsonbr 다시로드 한 직후입니다. 페이지를 새로 고침 할 때 content1이 잘 표시됩니다 – user1385694

답변

0

$("#content2").show(); 받고 있어요 페이지를 다시로드는 변경하려고하면

$(document).on('change', '.ui-slider-switch', function() { 

에 :

$(document).on('change', 'select[name=slider]', function() { 
+0

작동하지 않습니다 – user1385694

+0

코드가 실행되는 링크가 있습니까? – Bloafer

0

당신에게 이벤트 처리기의 코드가 실행되고 있는지 있습니까? (즉, alert 또는 console.log 또는 그와 비슷한 것을 사용하여 테스트 했습니까?) 페이지가 다시로드되고 아무도 (사람 또는 코드)가 선택 값을 변경하지 않으면 기본적으로 핸들러가 실행되지 않습니다.

$('.ui-slider-switch').trigger('change'); 

그 코드가 후에 실행되어 있는지 확인합니다 :

내가 수동으로 페이지 후 change 이벤트를 트리거 (또는 요소) 좋을 것은 올바른 값을 두 번 확인/확인됩니다 이런 식으로로드가 완료 당신은 방금 페이지를 다시로드 완료했습니다.

관련 문제