Php jquery成功后,javascript替换url,屏幕移动页面的指定元素id。。。但屏幕再次移动到顶部位置

Php jquery成功后,javascript替换url,屏幕移动页面的指定元素id。。。但屏幕再次移动到顶部位置,php,javascript,jquery,Php,Javascript,Jquery,如果$list[$i][wo_status]没有值, 我称之为whatson_读取函数, 它对数据库操作执行ajax。 成功后,url再次出现 屏幕位置移动到指定元素id的位置 但几微秒后,secreen移动到顶部位置。 为什么会发生这种情况 php部分 if ($list[$i][wo_status]) echo "<a href='" . $list[$i][url] . "' $target_link >"; else

如果
$list[$i][wo_status]
没有值, 我称之为whatson_读取函数, 它对数据库操作执行ajax。 成功后,url再次出现 屏幕位置移动到指定元素id的位置

但几微秒后,secreen移动到顶部位置。 为什么会发生这种情况

php部分

      if ($list[$i][wo_status])
          echo "<a href='" . $list[$i][url]  . "' $target_link >";
      else
          echo "<a href='#' onclick='javascript:whatson_read(\"" . $list[$i][url] . "\", " . $list[$i][wo_id] . "); return false' >";
<script type="text/javascript">
function whatson_read(url, wo_id) {

    var post_url = "<?=$g4[bbs_path]?>/ajax_whatson.php?w=r&wo_id="+wo_id;
    var data = "";

    $.ajax({
        type:"POST",
        url:post_url,
        data:data,
        async:false,
        error:function() {
            alert('fail');
        },
        success: function(){
            <? if ($target) { ?>
        parent.<?=$target?>.location.href = url ;
            <? } else { ?>
        location.href = url;
        <? } ?>
        }
     });
}
</script>
if($list[$i][wo_status])
回声“;
其他的
回声“;
Javascript部分

      if ($list[$i][wo_status])
          echo "<a href='" . $list[$i][url]  . "' $target_link >";
      else
          echo "<a href='#' onclick='javascript:whatson_read(\"" . $list[$i][url] . "\", " . $list[$i][wo_id] . "); return false' >";
<script type="text/javascript">
function whatson_read(url, wo_id) {

    var post_url = "<?=$g4[bbs_path]?>/ajax_whatson.php?w=r&wo_id="+wo_id;
    var data = "";

    $.ajax({
        type:"POST",
        url:post_url,
        data:data,
        async:false,
        error:function() {
            alert('fail');
        },
        success: function(){
            <? if ($target) { ?>
        parent.<?=$target?>.location.href = url ;
            <? } else { ?>
        location.href = url;
        <? } ?>
        }
     });
}
</script>

函数whatson_read(url、wo_id){
var post_url=“/ajax_whatson.php?w=r&wo_id=“+wo_id;
var数据=”;
$.ajax({
类型:“POST”,
url:post_url,
数据:数据,
async:false,
错误:函数(){
警报(“失败”);
},
成功:函数(){
parent..location.href=url;
location.href=url;
}
});
}

您的问题最有可能出现在PHP的
else
部分


href='javascript:void(0)
替换
href='javascript:void(0)
使用
javascript:
而不是将
#
放入
href
标签的属性中

另外,当
函数
绑定到链接时,可以使该函数
返回false
,这样事件就不会进一步传播<代码>事件传播
使浏览器转到页面顶部

另外,您的
onclick事件中不需要
javascript:
文本
Html Onclick事件
可以直接接受javascript代码

请不要使用
。这是一种过时的做法

当前,您的链接指向页面内锚定
#
。该锚点在页面上不存在,因此当您单击链接时,浏览器只会将您带到页面顶部

您需要从
onclick
处理程序
返回false
,以防止单击事件的默认操作。这在JavaScript中是常规的:

<a href="#" onclick="whatson_read(...); return false;">

谢谢大家

我发现你的建议对我的节目有好处, 我的问题是由于IE bug相关的锚。 但问题并没有得到解决

我变了

<a name="c_<?=$comment_id?>"></a>

当然,直接在HTML元素上附加JavaScript事件处理程序也很过时,但是关于不引人注目的JavaScript的讨论超出了这个问题的范围。谢谢Brandan,我改变了同样的情况。Screeen移动到页面的一半,然后转到顶部回声“`你可以发布一个示例值
$list[$i][url]
。示例值$list[$i][url]是锚定html,我想可能是IE bugsThanks,Grexis。同样的结果。屏幕从页面的一半移到顶部。谢谢。我的代码风格非常古老。我从FORTRAN开始编写这个程序。我变了,结果也一样。