jQuery 變數重定向到未定義的 url,儘管它是一個字串
P粉478188786
P粉478188786 2024-04-01 21:03:17
0
1
454

我在嘗試使用 jQuery 重定向到新 URL 時遇到問題,但不知何故它在這種特定情況下不起作用。我將 jQuery 與 html 和 Django backlog 結合使用,但我認為這些都不會導致顯示未定義的參數。程式碼相當簡單:

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

點擊的html元素如下:

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

在這種情況下,我可以使用console.log(url) 記錄URL 並取得"/something/something/" 形式的字串,我可以使用瀏覽器中的檢查工具使用斷點來查看該URL 確實包含正確的URL,我可以獲得URL 的類型,它是一個字串。然而,當我單擊執行此程式碼的按鈕時,該網站會重定向到http://127.0.0.1:8000/undefined(我使用的是本機伺服器),因此不知何故URL 現在未定義。

我已經嘗試了很多不同的方法來執行此操作,包括嘗試重定向到新網址的每種方法,包括window.location = urlwindow.location.href = url,但總是彈出未定義。我也已經嘗試列印 URL 的內容和類型,這一切看起來都很好。對我來說最奇怪的部分是,如果我將程式碼更改為

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

即使我從第一個 let URL 行的 console.log() 結果中複製並貼上 URL,程式碼也會正確重定向到正確的 URL。

總結一下問題:有一個按鈕,其中包含 data-href 套件中的 URL。單擊按鈕時,我會在 jQuery 中取得 URL,並將其儲存為 URL。我現在可以使用 console.log() 記錄 URL 並取得類型,然後我得到 URL 和我期望的類型(字串)。當我嘗試重定向到此 URL 時,出現錯誤,無法重定向到 URL http://127.0.0.1:8000/undefined。當我將 URL 硬編碼為從早期日誌記錄測試中複製貼上的字串時,重定向突然起作用了。 有人知道我還能嘗試什麼來解決這個問題?

P粉478188786
P粉478188786

全部回覆(1)
P粉448130258

您的選擇器.view-diagnostics 符合兩個 元素。 按鈕div

為按鈕呼叫您的函數並將您期望的值指派給window.location.pathname

然後事件冒泡到 div第二次呼叫函數div 沒有任何 data-* 屬性,因此 url未定義。它被指派給 window.location.pathname 並覆寫先前的分配。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板