2011-06-09 60 views
0

我有用jQuery編寫的Google即時樣式搜索腳本。當用戶搜索時,會創建一個類似於#search/QUERY/1 /的URL,並將其查詢放入頁面的標題中。這種情況目前發生,因爲他們鍵入,但我希望它只能在結果頁面上停留3秒後才能執行此操作。我怎樣才能做到這一點?用jQuery在3秒後添加哈希URL和頁面標題

我的代碼是:

$(document).ready(function(){ 
    $("#search").keyup(function(){ 
     var search=$(this).val(); 
     var query=encodeURIComponent(search); 
     var yt_url='search.php?q='+query+'&category=web'; 
     window.location.hash='search/'+query+'/1/'; 
     document.title=$(this).val()+" - My Search Script"; 
     if(search==''){ 
      window.location.hash=''; 
      document.title='My Search Script'; 
     } 
     $.ajax({ 
      type:"GET", 
      url:yt_url, 
      dataType:"html", 
      success:function(response){ 
       if(response !=""){ 
       $("#result").html(response); 
       } else { 
       $("#result").html("Your search did not return any results"); 
       } 
      } 
     }); 
    }); 
if(window.location.hash.indexOf('#search/')==0){ 
    query=window.location.hash.replace('#search/', '').replace('/1/', ''); 
    $('#search').val(decodeURIComponent(query)).keyup(); 
} 
}); 

回答

0

您想要在用戶在結果頁面上停留3秒後更改頁面的標題。這意味着一旦ajax成功函數完成並且結果已經被渲染,那麼在3秒之後,你想要改變標題。

$(document).ready(function(){ 
    $("#search").keyup(function(){ 
     var search=$(this).val(); 
     var query=encodeURIComponent(search); 
     var yt_url='search.php?q='+query+'&category=web'; 
     window.location.hash='search/'+query+'/1/'; 
     //document.title=$(this).val()+" - My Search Script"; 
     if(search==''){ 
      window.location.hash=''; 
      document.title='My Search Script'; 
     } 
     $.ajax({ 
      type:"GET", 
      url:yt_url, 
      dataType:"html", 
      success:function(response){ 
       if(response !=""){ 
        $("#result").html(response); 

        // schedule a function to change the page title after 3 seconds 
        setTimeout(function() { 
         document.title = search + " - My Search Script"; 
        }, 3000); 
       } 
       else { 
        $("#result").html("Your search did not return any results"); 

        // reset the title 
        document.title='My Search Script'; 
       } 
      } 
     }); 
    }); 
if(window.location.hash.indexOf('#search/')==0){ 
    query=window.location.hash.replace('#search/', '').replace('/1/', ''); 
    $('#search').val(decodeURIComponent(query)).keyup(); 
} 
}); 

雖然如果你問我,不用等3秒鐘。在搜索結果返回的時候改變它。

0

你可以用你的函數setTimeout函數裏面,如:

的setTimeout(函數(){} ,3000);

相關問題