2013-03-25 2 views
1

콘텐츠를 dinamically로드하는 페이지가 있습니다. 중첩 된 div에서 jQuery 이벤트를 클릭

이 재개 된 HTML 코드는 그냥 두 세 곳을위한 ONE을 변경, page_THREE.php page_TWO.php 및 거의 동일한 코드를 가지고 에 의해 page_ONE.php

<body> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $(document).on('click', "#contentarea_ONE a", function(ev) { 
      ev.preventDefault(); 
      ev.stopPropagation(); 
      ev.stopImmediatePropagation(); 
      $('#contentarea_ONE').load($(this).attr('href')); 
      return false; 
    }); 
    }); 
</script> 
<div id="contentarea_ONE"> 
</div> 
</body> 

를 생성 그것은 대응한다.

나는 #contentarea_ONE 내부 page_TWO.php를로드하는 저를 허용하는 각 페이지에 버튼이 있고, page_THREE.php #contentarea_TWO 내부.

방화범이 네비게이터 메모리에 HTML로 날이를 보여줍니다

<body> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $(document).on('click', "#contentarea_ONE a", function(ev) { 
      ev.preventDefault(); 
      ev.stopPropagation(); 
      ev.stopImmediatePropagation(); 
      $('#contentarea_ONE').load($(this).attr('href')); 
      return false; 
    }); 
    }); 
</script> 
<div id="contentarea_ONE"> 

<div id="contentarea_TWO"> 

<div id="contentarea_THREE"> 

</div> 
</div> 
</div> 
</body> 

음,이 문제는 : 그 중첩 된 방식으로로드 된 세 개의 페이지가있을 때, 내가 <a href="xxx/yyy"> 같은 링크를 클릭하면 div #contentarea_THREE 안에 contentarea_THREE 안에 내용이로드 될 것으로 예상되지만 내용이 인 div #contentarea_TWO 안에로드됩니다.

왜 그런가?

+1

자바 스크립트가 포함 된 파일에로드되어 있다고 생각하지 않습니다. 2 페이지의 클릭 이벤트 처리기를 경고로 바꾸어보십시오. 페이지 2의 호출 대신 페이지 1의 함수로 의심됩니다. – MyStream

+0

가장 가까운 contentarea로 시도하십시오 –

+1

"각 페이지에는 #contentarea_ONE 안에 page_TWO.php를로드하고 #contentarea_TWO에는 page_THREE.php를로드 할 수있는 버튼이 있습니다." 그것이 사실입니까, 아니면'page_TWO.php'가'# contentarea_TWO'에 들어가고'page_THREE.php'가'# contentarea_THREE'에 들어가는 것을 의미합니까? –

답변

1

당신이 함께 시도 할 수 있습니다 :

$(document).ready(function() { 
    $(document).on('click', '[id^="contentarea_"] a', function(ev) { 
     ev.preventDefault(); 
     ev.stopPropagation(); 
     $(this).closest('[id^="contentarea_"]').load($(this).attr('href')); 
    }); 
}); 

는 먼저 모든 div의의 참조 동일한 ID 이니셜로 시작하거나 나는 그들이 공통으로 contentarea_을 말할 수 있습니다. attr 셀렉터를 사용하여 시도해보십시오.이 div의 링크를 클릭하면 같은 ID의 머리 글자 $(this).closest('[id^="contentarea_"]') 인 가장 가까운 div를 찾아로드를 수행하십시오.

+0

그게 무슨 일을하고 왜 도움이되는지 설명해 줄 수 있습니다. 일반적으로 코드 자체는별로 교육적이지 않습니다. –

+0

그것은 작동합니다! 고맙습니다! –

+0

@AnthonyGrist 네, 게시했을 때 방금 시스템에서 빠져 나갔습니다. – Jai

관련 문제