2009-08-04 4 views
0

.Net 1.1 webapp의 usercontrol에 연결된 외부 JS 파일에 다음 JQuery 코드가 있습니다.로드 중 Jquery 코드가 실행되지 않음

usercontrol은 작업 표입니다.

페이지가로드되면 MonthChange가 호출되어 한 페이지에서 올바르게 작동합니다.

하지만 지금은 timesheet/usercontrol을 새로운 브라우저 창에서 인쇄하기 위해 웹 페이지로로드하려고합니다.

문제는 내 MonthChange가 실행되지 않습니다.

어떤 아이디어가 있습니까 ???

$(function() { 

    MonthChange(); 
    //TestData(); 

    $('[class^=TSGridTB]').blur(function() { 
     var day = GetDay($(this).attr('id')); 
     var date = GetRowDate(day); 
     var bgcolor = GetInputFieldColor(date, false); 

     $(this).css("background-color", bgcolor); 
     $(this).parent().css("background-color", bgcolor); 
     //CalcHours($(this).get(0)); 
    }); 

    $('[class^=TSGridTB]').focus(function() { 
     var day = GetDay($(this).attr('id')); 
     var date = GetRowDate(day); 
     var bgcolor = GetInputFieldColor(date, true); 

     $(this).css("background-color", bgcolor); 
     $(this).parent().css("background-color", bgcolor); 
    }); 

    $('[id$=lstMonth]').change(function() { 
     MonthChange(); 
    });   

}); 
+0

오류 로그를 확인 했습니까? –

+0

'$ (document) .ready()'를 사용해야합니다. http://docs.jquery.com/Events/ready – sepehr

답변

0

추가 코드가 표시되지 않으면 선택기가 새 페이지의 컨트롤에 올바른지 확인하십시오.

문제는 DOM이 새 페이지/창에 대해 변경되었으며 JQuery가 아직 알지 못했기 때문일 수 있습니다.

제어 입력 초점을 잃고 가치가 포커스를 얻기 때문에 를 수정 된 change event

화재

.

당신은 live event 사용할 수 있습니다

모든 현재의 이벤트 (같은 클릭)에 핸들러를 바인드 - 미래 - 일치하는 요소.

"실시간"이벤트를 바인딩하면 위임을 사용하여 페이지의 요소를 모두 현재 및 미래의 것으로 바인딩합니다 ( ). 예를 들어, 을 라이브로 클릭하면 모든 "li"요소가 에 추가 된 다음 페이지가 번에 또 다른 li가 추가됩니다. 그 클릭 이벤트는 (이 경우 바인드되지 않습니다. 어느 새 요소에 대해 을 다시 바인딩해야하는지).

+0

내가 언급하지는 않았지만 Jquery에 대한 링크와 모든 코드가 usercontrol에 포함되어 있습니다. 그냥 diffeent aspx 페이지에 추가 ??? – Malcolm

0

새 웹 페이지에 jQuery 스크립트가 포함되어 있는지 확인 했습니까?

0

사용중인 확인하십시오

$(document).ready(
); 

을 전체 코드 블록 주위에. $ 혼자서 종종 트릭을하지 않습니다.

관련 문제