2012-07-03 2 views
0

jquery ajax를 사용하여 모든 페이지를로드하는 사이트가 있습니다. 기본적으로 그 모양은 <a href="photos">photos</a>입니다. 그런 다음 jquery가이 파일을 선택하고 올바른 폴더로 이동하여 끝에 .php를 추가하고 해당 파일을 콘텐츠 창에로드합니다. 그런 다음 href 속성 (이 경우 사진)을 넣고 url의 끝에 #current_pg_attr을 넣습니다. 따라서 콘텐츠 창에 사진 페이지가 표시되면 www.mysite.com/#photos와 비슷합니다. 하위 메뉴를 클릭하면 이상한 URL을주는 툴팁 부 메뉴 링크

<ul id="main_nav"><br /> 
    <li><a href="home">home</a></li><br /> 
    <li><a href="photos">photos</a><br /> 
     <div id="menu2_submenu_tooltip"><a href="?com=viewall">view all stuff</a></div><br /> 
    </li><br /> 
</ul> 

지금 문제가 발생한다 : 또한 내 메인 메뉴 중 하나에, 난 단지 호버와 등에 표시하는 하위 메뉴가 있습니다. 보기를 클릭하면 마치 www.mysite.com/#?com=viewall 대신 www.mysite.com/?com=viewall#photos이 표시됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 그것이 jquery # url을 추가하는 줄과 관련이 있다고 생각한다. 이 오류 URL은 GET 변수를 얻고 해당 페이지를로드하여 해결할 수 있지만 문제가되지 않지만 여전히이 권한을 얻으려고합니다. 그건 그렇고, 여기 내 아약스 jquery 코드의 일부입니다 :

도움이 되었습니까? 당신이

// note I am not sure what window.location.hash returns if there is no hash but you should test that first to make this more efficient 
var t = window.location; 
var originalHash = ""; 
if(t.indexOf("#") > -1) { 
    // grab the hash 
    originalHash = window.location.hash; 
} 

같은 것을 할 수있는 원래의 해시에 대한 지옥으로

+0

당신의 새로운 코드를 게시하지 않습니다, 그것은 HREF를 잡고 그 앞에 #을두고 그것을 세우다 해시에게. 결과가 정확합니다. 사진을 포함 시키려면 먼저 해시를 잡고 올바른 순서로 추가해야합니다. 어쩌면 window.location.hash = page + "#"+ originalHash와 같은 것입니다. – Huangism

+0

이 작업을 수행하는 방법에 대한 예를 제공 할 수 있습니까? 나는 일종의 일반적인 아이디어를 얻었지만 예제를 보면 도움이 될 것입니다. – user1499338

답변

0

은 그래서 지금 당신은 당신의 코드가되는 방법을 남길 수 있습니다 새 페이지를 설정하고에이 작업을 수행하기 위해, 원래의 해시를 돌봐 당신이 시도하는 경우

// don't need to add # because it is in originalHash already, it is safe to add originalHash because if there is no # in URL then it will be empty string 
window.location.hash = page + originalHash; 

종료하고, 일을 당신이 질문을 수정 있는지 확인하고 클릭 처리기에서

+0

위의 코드에서 깨달은 또 다른 문제점은 jquery 스타일의 Ajax 페이지가로드되는 것입니다. 하위 메뉴는 GET 변수에 링크 된 것과 같습니다. 그것을 클릭하면 jquery는 페이지를 GET 변수 + .php의 이름으로 리디렉션합니다. 이 페이지가 없으므로 아무 것도로드되지 않습니다. 이제 문제는 기본 메뉴 사진 페이지에 머무르고 싶고 서브 페이지는 URL에 GET 변수를 추가하기 때문에 get 변수가 무엇인지에 따라 기본 사진 페이지가 변경됩니다. 따라서 사진 페이지에 다음과 같은 코드가 있습니다. 'if ($ _GET ['com '] =='viewall ') {// do something}' – user1499338

+0

PHP에 익숙하지 않아서 또 다른 질문을 게시해야합니다. – Huangism