2012-03-07 1 views
0

내 사이트의 외부 프레임 페이지와 내부 콘텐츠 페이지가 있습니다.Jquery domready는 ajax, element.on ('click', function) 문제를 해결하지 못합니다.

$(document).ready(function() { 
//page load functions 
     $('.menu').click(function(){ 
       $("#innerpage").html(ajax_load).load(loadUrl);  
       $('#innerpage').ajaxComplete(function() { 
          //do some stuff here 
       }); 
     }); 
}); 

내가 다음 내부 페이지 JS는 다음과 같습니다 : 내부 페이지는 다음과 같이 내가 외부 페이지 JS이 순간 아약스 호출

를 통해 변경

$(document).ready(function() { 
    //page load functions 
      $('.innermenu').click(function(){ 
        $("#innerpageresults").html(ajax_load).load(loadUrl); 
        $('#innerpageresults').ajaxComplete(function() { 
           //do some stuff here 
        }); 
      }); 
    }); 

이 모두 작동하지만 이상 적으로는 하나의 외부 파일에있는 모든 자바 스크립트를 원하지만이 문제가 발생하는 중입니다.

내가 외부 페이지에서 다음 코드를 사용하여이 문제를 해결하려고하지만, 내부 페이지는 아약스 호출을 통해 변경된 후 그것의 발사하지 원인이 뭔가 잘못된 일을해야합니다

$('.innermenu').on("click", function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 

어떤 도움을 매우 감사.

+0

의 이벤트 위임 구문을 사용하십시오() '] (http://api.jquery.com/on)? –

+0

그것의 대부분은 ... 많은 것이 있고 그것의 대부분은 와플처럼 보였다. 나는 예제를 따라 갔고 가장 기본적인 것은 위의 형식으로되어있다. – WebweaverD

답변

2

당신이 시도해야합니다 :이 방법으로

$('body').on("click",'.innermenu', function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 

당신이 클래스 innermenu이 요소의 <body> 요소에 click 이벤트의 처리를 위임한다. .menu 모든 .innermenu 요소를 래핑

경우 당신은 더 나은 생을 작성할 수

$('.menu').on("click",'.innermenu', function(){ 
         $("#innerpageresults").html(ajax_load).load(loadUrl); 
         $('#innerpageresults').ajaxComplete(function() { 
            //do some stuff here 
         }); 
}): 
+0

제안 해 주셔서 감사합니다. 불행하게도 같은 결과를줍니다. 아약스 호출 전에 작동하지만 – WebweaverD

+0

이후에는 작동하지 않습니다. 지금 작업하고 있습니다. 두 예제 모두 실제로 작동합니다. 실제 예제에서 선언 할 수있는 doc.ready 함수에서 일부 변수를 선언했습니다. .on 함수 내에서. – WebweaverD

+0

@WebweaverD 둘 다 작동하면 두 번째 것을 고수해야합니다. evnt가 몸체가 아닌 .menu 요소에만 DOM을 버블 링해야하기 때문에 응답 성이 더 좋아집니다. –

2

는에`의 [문서를 읽어나요 .on

$("#innerpage").on("click",".innermenu",function(){...}); 
관련 문제