我有如下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‘
如何测试这个功能?
发布于 2018-08-21 05:26:45
Javascript应该是一个具有inv
属性的params
对象,您没有将该属性作为参数提供给函数。
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>
发布于 2018-08-21 05:29:05
这是因为您没有将任何内容传递给函数,您可以这样测试它
<button onclick='myClickEvent("value")'>Click me</button>
然后在函数的第一行添加console.log(params)
发布于 2018-08-21 05:29:14
你需要阅读javascript教程,你告诉按钮在没有参数的情况下点击执行函数myClickEvent(),在定义中你需要一个参数参数,这不是由参数本身填充的,我会告诉你添加参数,但你真正需要做的是不要在html中使用onClick属性,而是在按钮元素中使用来自脚本的addEventListener。
https://stackoverflow.com/questions/51938685
复制相似问题