href="javascript:xxx(this);"和onclick="javascript:xxx(this);"的区别

href="JavaScript:xxx(this);"和onclick="javascript:xxx(this);"

一直以为这两种写法是等同的,今天在项目中使用时发现前者的this根本拿不到触发事件的A标签,而后者可以拿到

一般在做分页按钮时会用A标签来做,但是一般都会写<a href="#" onclick="turnPage(1,10)">之类的

href="#"会导致分页在跳转时页面先跳到当前页面顶部用户体验不好,所以一般推荐写成

<a href="javascript:void(0);" onclick="turnPage(1,10,this)">

甚至如果跳转的方法不需要拿到当前的A标签this的话,也可以直接写成

<a href="javascript:turnPage(1,10);" >

 

示例代码:

<div id="sse">
       <a href="javascript:WebSocketTest(this)">运行 WebSocket</a>
	<a href="javascript:void(0);" onclick="javascript:WebSocketTest(this)">运行 WebSocket(2)</a>
</div>
<script type="text/javascript">
	function WebSocketTest(obj){
		console.log(obj.innerText);
	}
</script>

 

猜你喜欢

转载自yangshangzhao.iteye.com/blog/2379243