Die jQuery-Variable leitet zu einer undefinierten URL weiter, obwohl es sich um eine Zeichenfolge handelt
P粉478188786
P粉478188786 2024-04-01 21:03:17
0
1
498

Ich habe Probleme beim Versuch, mit jQuery auf eine neue URL umzuleiten, aber irgendwie funktioniert es in diesem speziellen Fall nicht. Ich verwende jQuery mit HTML und Django Backlog, aber ich glaube nicht, dass irgendetwas davon dazu führt, dass die undefinierten Parameter angezeigt werden. Der Code ist ziemlich einfach:

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

Das angeklickte HTML-Element lautet wie folgt:

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

In diesem Fall kann ich console.log(url) 记录 URL 并获取 "/something/something/" 形式的字符串,我可以使用浏览器中的检查工具使用断点来查看该 URL 确实包含正确的 URL,并且我可以获得 URL 的类型,它是一个字符串。然而,当我单击执行此代码的按钮时,该站点会重定向到 http://127.0.0.1:8000/undefined verwenden (ich verwende einen lokalen Server), sodass die URL jetzt irgendwie undefiniert ist.

Ich habe eine Reihe verschiedener Möglichkeiten ausprobiert, darunter auch alle Methoden zur Umleitung auf eine neue URL, einschließlich window.location = urlwindow.location.href = url, aber es wird immer als undefiniert angezeigt. Ich habe auch versucht, den Inhalt und den Typ der URL auszudrucken, und alles sieht gut aus. Das Seltsamste für mich ist, wenn ich den Code in

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

Selbst wenn ich die URL aus dem console.log()-Ergebnis der ersten let-URL-Zeile kopiere und einfüge, leitet der Code korrekt zur richtigen URL weiter.

Um das Problem zusammenzufassen: Es gibt eine Schaltfläche, die data-href 包中的 URL。单击按钮时,我会在 jQuery 中获取 URL,并将其保存为 URL。我现在可以使用 console.log() 记录 URL 并获取类型,然后我得到 URL 和我期望的类型(字符串)。当我尝试重定向到此 URL 时,出现错误,无法重定向到 URL http://127.0.0.1:8000/undefined enthält. Als ich die URL in eine kopierte und eingefügte Zeichenfolge aus einem früheren Protokollierungstest fest codierte, funktionierte die Umleitung plötzlich. Weiß jemand, was ich sonst noch versuchen kann, um dieses Problem zu lösen?

P粉478188786
P粉478188786

Antworte allen(1)
P粉448130258

您的选择器.view-diagnostics 匹配两个 元素。 按钮div

为按钮调用您的函数并将您期望的值分配给window.location.pathname

然后事件冒泡到 div第二次调用该函数div 没有任何 data-* 属性,因此 url未定义。它被分配给 window.location.pathname 并覆盖之前的分配。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage