簡談a標簽與添加點擊事件

由來:

最近在學習vue基礎,想給a添加一個點擊事件,沒有注意到a的href設為了空,導致頁面一直在刷新,點擊事件根本就沒有進去

<template v-if="loginType === 'username'">
  <label>Username</label>
  <input placeholder="Enter your username">
</template>
<template v-else>
  <label>Email</label>
  <input placeholder="Enter your email address">
</template>
<a href=""  v-on:click="doChange">更換方式</a>
</div>
var watchExampleVM= new Vue({
  el:'#example',
  data: {
    loginType:'username'
  },
  methods: {
     doChange: function () {
       this.loginType =this.loginType =="username"?"email":"username";
       return this.loginType;
    
    }
 }
})

后來知道a標簽的href會導致默認人的頁面跳轉(zhuǎn)事件,如果為空值,就會刷新頁面。
因為這個小的問題,就重新看了一下給a綁定點擊事件注意的小地方,記錄一下
1.鏈接的 onclick 事件被先執(zhí)行,其次是 href 屬性下的動作(頁面跳轉(zhuǎn),或 javascript 偽鏈接);
2.如果在鏈接的 href 屬性中調(diào)用一個有返回值的函數(shù),當前頁面的內(nèi)容將被此函數(shù)的返回值代替;
3.假設鏈接中同時存在 href 與 onclick,如果想讓 href 屬性下的動作不執(zhí)行,我們需要阻止默認行為,

"a"標簽中使用點擊事件的方法

  1. <a href="JavaScript:js_method();"</a>
    但是這種方法在傳遞this等參數(shù)的時候很容易出問題,而且javascript:協(xié)議作為a的href屬性的時候不僅會導致不必要的觸發(fā)window.onbeforeunload事件,在IE里面更會使gif動畫圖片停止播放。W3C標準不推薦在href里面執(zhí)行javascript語句

  2. <a href="javascript:void(0);" onclick="js_method()"</a>
    <a href="javascript:;" onclick="js_method()"</a>
    這種方法是很多網(wǎng)站最常用的方法,也是最周全的方法,onclick方法負責執(zhí)行js函數(shù),而void是一個操作符,void(0)返回undefined,地址不發(fā)生跳轉(zhuǎn)。而且這種方法不會像第一種方法一樣直接將js方法暴露在瀏覽器的狀態(tài)欄,這種方法可以阻止默認行為
    3.<a href="#" onclick="js_method()"</a>
    這種方法也是網(wǎng)上很常見的代碼,#是標簽內(nèi)置的一個方法,代表top的作用。所以用這種方法點擊后網(wǎng)頁后返回到頁面的最頂端。
    4.<a href="#" onclick="js_method();return false;"</a>
    這種方法點擊執(zhí)行了js函數(shù)后return false,頁面不發(fā)生跳轉(zhuǎn),執(zhí)行后還是在頁面的當前位置。
    未完待續(xù)。。。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容