2013-03-07 2 views
0

мне нужна помощь с функцией JQuery, которая позволит мне использовать хэштеги для перехода к точке крепления на странице .load().страница .load JQuery затем перейти на якорь, используя хэштегом

В основном кто-то нажимает на ссылку главной страницы и открывает окно модели, которое они используют для навигации по остальной части веб-сайта. Это окно затем использует тот же код, чтобы открыть любые другие ссылки на сайте. Я знаю, что формат этих ссылок не оптимален, но это то, с чем мне нужно работать.

У меня есть следующий код, который отображается в окне модели.

<div id="pop-top-menu"> 
    <p class="p_text"> 
    <a href="javascript:pop('properties.php#<?php echo strip_tags($_GET['property']); ?>');">Go Back</a> | 
    <a href="javascript:pop('properties.php');">View by Resorts</a> | 
    <a href="javascript:pop('private-homes.php');">View our Private Homes</a> | 
    <a href="javascript:pop('rental-coupons.php');">View our Properties with Discount Coupons</a></p> 
</div> 

Когда кто-то нажимает на одну из этих ссылок, он будет идти, хотя этот код:

function pop(id) { 
     $("#body-cover").fadeIn(1000); 
     $("#slide-content").load(id).slideDown(1000); 
     $("#slide-content-close").delay(2000).fadeIn(1000); 
    } 

Так что мне нужно, чтобы иметь посетителя нажмите на properties.php # PROPERTY_ID и загрузить страницы properties.php и THEN перейдите к тегу привязки. Не все ссылки будут иметь привязки, но многие будут.

Обратите внимание, что это не привязка к основанию. Это загружает ссылку, и THEN переходит на якорь (если он существует).

ответ

2

непроверенные, но когда я правильно понял ваш вопрос, вы можете изменить ваш поп-функцию, как это:

function pop(id) { 
    // Expression to test if id has a hashtag 
    var hasHash = /(#([^ ]*)/, 
     $hashID; 
    $("#body-cover").fadeIn(1000); 
    $("#slide-content").load(id).slideDown(1000); 
    $("#slide-content-close").delay(2000).fadeIn(1000); 
    if(hasHash.test(id)!== false) { 
     // hasfound - grep it, and make a jQuery Object 
     $hashID = $('#' + id.split('#')[1]); 
     if($hashID.length) { 
      // if it is found, scroll to this element with an animation 
      // in case you just want a jump, simply set scrollTop 
      // and remove the animate method 
      $('html, body').animate({ 
       scrollTop: $hashID.offset().top 
      }, 2000); 
     } 
    } 
} 
+0

извините за поздний ответ, но это работает! – frustratedtech

Смежные вопросы