Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk mengubah suai mekanisme pencetus lalai bagi atribut tag penyemak imbas?

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

伊谢尔伦伊谢尔伦2690 hari yang lalu1809

membalas semua(9)saya akan balas

  • 过去多啦不再A梦

    过去多啦不再A梦2017-07-01 09:14:15

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

    e.preventDefault()

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

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

    });
    })

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-01 09:14:15

    $('a').click(function() {
      var link = this
      $.get(xx, function() {
        location.href = link.href 
      });
      return false // 阻止先不跳转
    })

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-01 09:14:15

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

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

    }

    balas
    0
  • 怪我咯

    怪我咯2017-07-01 09:14:15

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

    balas
    0
  • typecho

    typecho2017-07-01 09:14:15

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

    balas
    0
  • 欧阳克

    欧阳克2017-07-01 09:14:15

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

    balas
    0
  • 天蓬老师

    天蓬老师2017-07-01 09:14:15

    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);

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-01 09:14:15

    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>
    

    balas
    0
  • 为情所困

    为情所困2017-07-01 09:14:15

    <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");
        }
    }

    balas
    0
  • Batalbalas