Rumah  >  Soal Jawab  >  teks badan

Pembolehubah jQuery mengubah hala ke url yang tidak ditentukan walaupun ia merupakan rentetan

Saya menghadapi masalah cuba mengubah hala ke URL baharu menggunakan jQuery, tetapi entah bagaimana ia tidak berfungsi dalam kes khusus ini. Saya menggunakan jQuery dengan html dan Django backlog, tetapi saya tidak fikir mana-mana daripada ini menyebabkan parameter yang tidak ditentukan ditunjukkan. Kodnya agak mudah:

$(document).on('click', '.view-diagnostics', function(){
    let url = $(this).data("href");
    window.location.pathname = url;
})

Elemen html yang diklik adalah seperti berikut:

<td>
    <div class="view-diagnostics">
        <button class="button h-btn view-diagnostics" data-href="{% url "internet:diagnose" %}">{% trans "View diagnostics"%} </button>
    </div>
</td>

Dalam kes ini saya boleh menggunakan console.log(url) 记录 URL 并获取 "/something/something/" 形式的字符串,我可以使用浏览器中的检查工具使用断点来查看该 URL 确实包含正确的 URL,并且我可以获得 URL 的类型,它是一个字符串。然而,当我单击执行此代码的按钮时,该站点会重定向到 http://127.0.0.1:8000/undefined (saya menggunakan pelayan tempatan), jadi entah bagaimana URL kini tidak ditentukan.

Saya telah mencuba pelbagai cara untuk melakukan ini, termasuk mencuba setiap kaedah mengubah hala ke url baharu, termasuk window.location = urlwindow.location.href = url, tetapi ia sentiasa muncul sebagai tidak ditentukan. Saya juga telah mencuba mencetak kandungan dan jenis URL dan semuanya kelihatan baik. Perkara yang paling pelik bagi saya ialah jika saya menukar kod kepada

$(document).on('click', '.view-diagnostics', function(){
    let url = $(this).data("href");
    url = "/something/something/"
    window.location.pathname = url;
})

Walaupun saya menyalin dan menampal URL daripada hasil console.log() baris URL yang pertama, kod tersebut akan mengubah hala dengan betul ke URL yang betul.

Untuk meringkaskan masalah: terdapat butang yang mengandungi data-href 包中的 URL。单击按钮时,我会在 jQuery 中获取 URL,并将其保存为 URL。我现在可以使用 console.log() 记录 URL 并获取类型,然后我得到 URL 和我期望的类型(字符串)。当我尝试重定向到此 URL 时,出现错误,无法重定向到 URL http://127.0.0.1:8000/undefined. Apabila saya mengekod keras URL kepada rentetan salin-tampal daripada ujian pengelogan terdahulu, ubah hala tiba-tiba berfungsi. Adakah sesiapa tahu apa lagi yang boleh saya cuba untuk menyelesaikan masalah ini?

P粉478188786P粉478188786181 hari yang lalu358

membalas semua(1)saya akan balas

  • P粉448130258

    P粉4481302582024-04-02 00:28:36

    Pemilih anda.view-diagnostics 匹配两个 元素。 按钮div.

    Panggil fungsi anda untuk butang dan tetapkan nilai yang anda inginkan kepada window.location.pathname.

    Acara itu kemudiannya berbuih ke div dan memanggil fungsi untuk kali kedua. div tidak mempunyai sebarang atribut data-*, jadi url adalah undefined. Ia ditugaskan kepada div第二次调用该函数div 没有任何 data-* 属性,因此 url未定义。它被分配给 window.location.pathname dan menimpa tugasan sebelumnya.

    balas
    0
  • Batalbalas