javascript - 如何修改瀏覽器的a標籤屬性的預設觸發機制?
伊谢尔伦
伊谢尔伦 2017-07-01 09:12:15
0
9
1735

已知a標籤的執行順序是onclick->href屬性

#
当点击浏览器a标签的时候,浏览器的默认机制如下: 1、触发a的click事件 2、读取href属性的值 3、如果是URI则跳转 4、如果是javascript代码则执行该代码

如何改變這個機制,使得在onclick事件執行完畢時在去執行href屬性的url進行跳轉,其中onclick事件中的函數發送了ajax請求,根據返回值對href屬性進行了修改

修改href屬性後需要在目前瀏覽器新開頁面

update------------------------2017.06.30------------------- -----------------

經過測試,將ajax請求修改為同步執行,依然不能夠使a標籤的onclick函數執行完畢再去執行href的動作

究其原因,猜測可能是ajax修改為同步請求,會阻塞目前頁面的其他操作,

但a標籤的已經完成了點擊,就繼續執行了後續的href動作,而href動作此時是void(0),此時ajax的請求還沒有返

回,也就是說ajax的同步請求並沒有阻塞a標籤的動作

期待更佳答案

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆 (9)
过去多啦不再A梦

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

雷雷

var _ = $(this)
$.get(xx, function() {

雷雷

});
})

    淡淡烟草味

    雷雷

      曾经蜡笔没有小新

      在onclick裡面使用js跳轉頁
      //ajax start
      success:function(){

      //todo。。。。。 window.location.href = 'url'

      }

        刘奇

        1、禁止a標籤跳轉 href="javascript:void(0)"
        2、在onclick方法中請求ajax,成功後,將返回值綁定到href上

          typecho

          為什麼不先不給href賦值,等請求完了再跳轉?

            学霸

            雷雷

              Peter_Zhu

              瀏覽器所有的是有的預設事件的禁用,都可以用event.preventDefault()來阻止,剩下的在你的回調函數裡,你可以任意的去操作, 當然如果你需要兼容IE8及以下,可以相容寫法如下:

              // event 为你的监听onclick回调函数中传递的参数 event.preventDefault ? event.preventDefault() : (event.returnValue = false);
                曾经蜡笔没有小新

                久等了,請吃

                    Document 
                  click   
                  为情所困

                  雷雷

                    最新下載
                    更多>
                    網站特效
                    網站源碼
                    網站素材
                    前端模板
                    關於我們 免責聲明 Sitemap
                    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!