Ajax的更新调用将我带到了页面顶部

时间:2012-02-27 11:26:49

标签: javascript jquery ajax sammy.js

我正在使用sammy javascript框架。问题是当我点击下面的锚点浏览器时把我带到页面顶部....我怎样才能防止这种情况....

这是html锚点

<a href="#/duplicate/Chart1">Duplicate</a>

这里是JS sammy listner

this.get('#/duplicate/:id', function(context) {
    chartName=this.params['id'];

  for(i=0;i<chartJSONS.length;i++){
    if(chartJSONS[i].chart.renderTo==chartName){
        var obj = jQuery.extend(true, {}, chartJSONS[i]);
        var dupChart=obj.chart.renderTo+"_duplicate";
        obj.chart.renderTo=dupChart;
        chartJSONS[chartJSONS.length++]=obj; 
    }
  }
  $('#chart').html('');
  createCharts();

    return false;
  }); 

非常感谢任何帮助...

2 个答案:

答案 0 :(得分:1)

您需要在点击事件后取消导航。

因为#会将您的浏览器导航到页面顶部。

类似的东西:

$('.allDuplicates').click(function(){
return false;
});

或使用

之外的其他内容
<a>

使用例如div,你没事。

答案 1 :(得分:0)

你需要做这样的事情:

$('a').click(function(e){

    e.preventDefault();
    window.location.hash = $(this).attr('href');

});

我建议你为你想要处理的每个元素添加一个类:

<a href="#/duplicate/Chart1" class="myclass">Duplicate</a>

$('.myclass').click(function(e){

    e.preventDefault();
    window.location.hash = $(this).attr('href');

});