Javascript I';我不确定我的ajax导航是否工作正常

Javascript I';我不确定我的ajax导航是否工作正常,javascript,jquery,ajax,history,Javascript,Jquery,Ajax,History,我试着用历史api制作菜单。但在我看来,这并不好,我有理由这么认为: 1我的“头衔”不变 2如果我点击我的链接快速我得到了一个页面闪烁,因为它是重新加载,但它不应该!(但如果我单击“慢速”,则可以。如何防止重新加载或闪烁?) 请告诉我我做错了什么 $(document).ready(function(){ sliderStartUp() //menu click $('.navigation').click(function(){ //fill the storage var

我试着用历史api制作菜单。但在我看来,这并不好,我有理由这么认为:

1我的“头衔”不变

2如果我点击我的链接快速我得到了一个页面闪烁,因为它是重新加载,但它不应该!(但如果我单击“慢速”,则可以。如何防止重新加载或闪烁?)

请告诉我我做错了什么

  $(document).ready(function(){

 sliderStartUp()




//menu click
 $('.navigation').click(function(){

//fill the storage
var storage = {
 url: $(this).children('a').attr('href'),
 title: $(this).children('a').attr('title')
 };

 history.pushState(null, storage.title, storage.url );



    $.ajax({
        url: $(this).children('a').prop("href"),
        cache: false,
        success: function(data){ //if the data you return is a css notation      (eg: #id) of the location of the title name
   JqObj = $(data);
   var addSmth = JqObj.find('#central').html();
  $("#central").html('').html(addSmth);
sliderStartUp()

  }
   });
 return false;

  });

function sliderStartUp(){
  $('#slider').nivoSlider({
effect: 'fold',
animSpeed: '500',
pauseTime: '4000'
});

 }




 });
这是我的哈维加里翁

 <ul id="navig">
 <?php
if ($_SERVER['REQUEST_URI'] == "/") 
{
    $_SERVER['REQUEST_URI'] = "/index";
}
$arrayNav = array(  array (
                        'name' => 'yyyyyy',
                        'title' => 'yyyyyyyyyyy',
                        'link' =>'http://bistro.loc/index',
                        'identificator' => 'id_index',
                        'pattern' => '/index/i'
                            ),
                    array (
                        'name' => 'xxxxxx',
                        'title' => 'xxxxxxx',
                        'link' => http://bistro.loc/price',
                        'identificator' => 'id_price',
                        'pattern' => '/price/i'
                            ),
                    array (
                        'name' => 'aaa',
                        'title' => '',
                        'link' => 'http://bistro.loc/#' ,   
                        'identificator' => 'id_serv',
                        'pattern' => '/#/i'
                            ),
                    array (
                        'name' => 'ssss',
                        'title' => '',
                        'link' => 'http://bistro.loc/#' ,   
                        'identificator' => 'id_cont',
                        'pattern' => '/#/i'
                            ),
                    array (
                        'name' => 'dddd',
                        'title' => '',
                        'link' => 'http://bistro.loc/#' ,   
                        'identificator' => 'id_about',                          
                        'pattern' => '/#/i'                     
                            ));
 foreach ($arrayNav as $item)
{if (preg_match($item['pattern'],"http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] ))
    {
        echo "<li  class = \"navigation\" id = \"".$item['identificator']."\"                                                                tltle=\"".$item['title']."\"><a href=\"".$item['link']."\" class=\"active\">".$item['name']."</a></li>";
        }else{
            echo "<li  class = \"navigation\" id = \"".$item['identificator']."\" tltle=\"".$item['title']."\"><a href=\"".$item['link']."\">".$item['name']."</a></li>";}
   ;}

   ?>           
 </ul>

    您的成功功能看起来不太好:

    success: function(data){
       jqObj = $(data);
       var addSmth = jqObj.find('#central');
       $("#central").html('').html(addSmth);
    
    我想你是指以下几点

    success: function(data){ //data is normally just a string
        $("#title").html(data));
    

    @减速:

    $('li[id^=id"))
    可能会减慢速度。我建议您为此使用类


    您还可以在创建点击事件后创建
    nivoSlider
    。如果您想确保所有点击事件都尽快完成。

    ajax函数会获得哪些数据?只需[div#central]。只有html。我的意思是
    url:$(this).children('a').prop(“href”)
    返回什么?当然,在您的帮助下,现在它可以正常工作了。但我有一个时刻,我试着先自己做。非常感谢(我不能投票,因为我的代表<15!)我可以请你看看我的jQ脚本吗。我不确定历史是否行得通。我的目的和往常一样是历史,浏览器按钮“前进”“后退”和直接链接。非常感谢您的时间和关注我可以帮助您,但我看不到您所有的代码(我看不到您的javascript返回),我建议您考虑一些易于使用的函数(界面),如:
    goBackInHistory()
    addToHistory(title,url)
    等。这将使您的代码更易于阅读、理解和调试;)。我像你们建议的那个样重新编写代码,但它仍然会随着快速点击而闪烁(每秒一次,并没有那个么快)
    function(data){ //if the data you return is a css notation (eg: #id) of the location of the title name
      JqObj = $(data);
      var addSmth = jqObj.find('#central').html();
      $("#central").html(addSmth);