如果$list[$i][wo_status]
没有价值,
我叫whatson_read函数,
它为数据库操作执行ajax。
成功后,网址重新开始
屏幕位置移动到指定元素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' >";
Javascript部分
<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>
答案 0 :(得分:1)
请不要使用<a href="javascript:">
。那是一个古老的,过时的做法。
目前,您的链接指向页内锚点#
。该锚点在页面上不存在,因此当您单击该链接时,浏览器会将您带到页面顶部。
您需要return false
处理程序中的onclick
来阻止click事件的默认操作。这在JavaScript中很常见:
<a href="#" onclick="whatson_read(...); return false;">
答案 1 :(得分:0)
您的问题最有可能出现在PHP的else
部分。
将href='#'
替换为href='javascript: void(0)'
答案 2 :(得分:0)
使用javascript:;
而不是将#
放在href
标记的<a>
属性中。
同时在binding
function
链接时,您可以创建该函数return false
,以便不再传播该事件。 Event propagation
使浏览器转到页面顶部。
此外,javascript:
无需onclick event
个文字。 Html Onclick event
可以直接接受javascript代码。
答案 3 :(得分:0)
感谢大家。
我发现你的建议对我的计划有好处, 而我的问题是由于IE漏洞相关的锚。 但是,问题没有解决。
http://www.webmasterworld.com/html/3322666.htm
我改变了
<a name="c_<?=$comment_id?>"></a>
到
<a name="c_<?=$comment_id?>" id="c_<?=$comment_id?>"></a>