javascript - Bagaimana untuk mengubah suai mekanisme pencetus lalai bagi atribut tag penyemak imbas?
伊谢尔伦
伊谢尔伦 2017-07-01 09:12:15
0
9
1825

Adalah diketahui bahawa susunan pelaksanaan teg ialah onclick->href attribute

当点击浏览器a标签的时候,浏览器的默认机制如下:

1、触发a的click事件

2、读取href属性的值

3、如果是URI则跳转

4、如果是javascript代码则执行该代码

Cara menukar mekanisme ini supaya apabila acara onclick selesai, URL yang melaksanakan atribut href akan melompat Fungsi dalam acara onclick menghantar permintaan ajax dan mengubah suai atribut href berdasarkan nilai pulangan

.

Selepas mengubah suai atribut href, anda perlu membuka halaman baharu dalam penyemak imbas semasa

kemas kini------------------------2017.06.30-------- ---------------

Selepas ujian, saya menukar permintaan ajax kepada pelaksanaan segerak, tetapi ia masih tidak dapat membuat fungsi onclick tag selesai melaksanakan sebelum melaksanakan tindakan href

Alasannya mungkin ajax diubah suai kepada permintaan segerak, yang akan menyekat operasi lain pada halaman semasa,

Tetapi klik pada teg telah selesai, dan tindakan href seterusnya terus dilaksanakan, dan tindakan href adalah batal(0) pada masa ini, dan permintaan ajax masih belum dikembalikan pada masa ini

Balas, iaitu, permintaan penyegerakan ajax tidak menyekat tindakan tag a

Nantikan jawapan yang lebih baik

伊谢尔伦
伊谢尔伦

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

membalas semua(9)
过去多啦不再A梦

$('a').klik(fungsi(e) {

e.preventDefault()

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

location.href = _.attr('href')

});
})

淡淡烟草味
$('a').click(function() {
  var link = this
  $.get(xx, function() {
    location.href = link.href 
  });
  return false // 阻止先不跳转
})
曾经蜡笔没有小新

Gunakan js untuk melompat ke halaman dalam onclick
//ajax start
success:function(){

//todo。。。。。

window.location.href = 'url'

}

刘奇

1. Larang tag daripada melompat href="javascript:void(0)"
2. Minta ajax dalam kaedah onclick

typecho

Kenapa tidak tetapkan nilai kepada href dahulu dan kemudian lompat selepas permintaan selesai?

学霸
1、禁止a标签跳转 href="javascript:void(0)"
2、其他的在onclick方法中进行
Peter_Zhu

Semua acara lalai dalam penyemak imbas dilumpuhkan, dan anda boleh menggunakan event.preventDefault() untuk menghalangnya dalam fungsi panggil balik anda, dan anda boleh melakukan apa sahaja yang anda mahu, jika anda perlu serasi dengan IE8 dan ke bawah, anda boleh tulis seperti berikut: :

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

Setelah lama menunggu, sila makan

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <a href="" target="_blank">click</a>
    <script>
        function aTagCustomEvent(e) {
            var tag = e.target;

            //setTimeout模拟异步的ajax请求,时间间隔假设为1秒
            setTimeout(function() {
                tag.href = 'xxx';
                tag.onclick = function() {};
                tag.click();
                tag.onclick = aTagCustomEvent;
            }, 1000)
            return false;
        }

        //为页面中所有a标签设置onclick事件
        var aTags = [].slice.call(document.getElementsByTagName("A"));
        aTags.forEach(function(tag) {
            tag.onclick = aTagCustomEvent;
        })

    </script>
</body>

</html>
为情所困
<a href="javscript:;" onclick="doSomething(this);">

function doSomething(obj) {
    if($(obj).attr("href") === "javscript:;") {
        // ... ajax get and set url
        $(obj).attr("target", "_blank").trigger("click");
    }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan