簡體   English   中英

Javascript onclick函數錯誤無法讀取未定義的屬性“ inv”

[英]Javascript onclick function error Cannot read property 'inv' of undefined

我有如下JavaScript函數:

function myClickEvent(params) {
    var inv = $("#" + params["inv"]);
    inv.on("click", function () {
        $.ajax({
            url: params["route"],
            contentType: "text/json",
            success: function (result) {
                history.pushState(null, null, params["route"]);
                $("#content-wrapper").html(result);
                inv.parent().siblings().removeClass("active");
                inv.parent().addClass("active");
            }
        });
        return false;
    });
}

我這樣稱呼它到我的html文件中:

<button onclick='myClickEvent()'>Click me</button>

顯示錯誤

無法讀取未定義的屬性“ inv”

如何測試此功能?

params應該是具有inv屬性的Javascript對象,您尚未將其作為函數的參數提供。

 function myClickEvent(params) { var inv = $("#" + params["inv"]); inv.on("click", function () { console.log(inv+": clicked"); //$.ajax({ // url: params["route"], //contentType: "text/json", //success: function (result) { // history.pushState(null, null, params["route"]); // $("#content-wrapper").html(result); // inv.parent().siblings().removeClass("active"); // inv.parent().addClass("active"); // } // }); // return false; }); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button onclick='myClickEvent({inv: "test"})'>Click me</button> <p/> <button id="test">Test</button> 

那是因為您沒有向函數傳遞任何東西,所以可以這樣測試

<button onclick='myClickEvent("value")'>Click me</button>

然后在函數的第一行中添加console.log(params)

您需要閱讀一個JavaScript教程,您告訴按鈕在不帶參數的情況下單擊函數myClickEvent()即可執行該按鈕,並且在定義中您期望的是params param,這本身並沒有填充,我會告訴您添加參數,但您真正需要做的是不使用html中的onClick屬性,而是使用button元素中腳本中的addEventListener。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM