Javascript 将字符串参数传递给jQuery,它将考虑其函数
我有一个下面的函数Javascript 将字符串参数传递给jQuery,它将考虑其函数,javascript,jquery,Javascript,Jquery,我有一个下面的函数 function showPossibleLocationToAdd() { var ulist = $("<ul data-rok='listview' id='addLocationList'></ul>").appendTo("#addLocation"); for (var i = 0; i < 10; i++) { console.log("calling" + i*5 + "," + i*3 + ",L
function showPossibleLocationToAdd() {
var ulist = $("<ul data-rok='listview' id='addLocationList'></ul>").appendTo("#addLocation");
for (var i = 0; i < 10; i++) {
console.log("calling" + i*5 + "," + i*3 + ",Location " + i);
var name = "Location " ;
$("<li><a href='#settingsPage' data-role='button' onclick='addNewLoc("+ i*5 + "," + i*3 + "," + name + ")'>Location " + i + "</a></li>").appendTo("#addLocationList");
}
}
但是点击链接后的输出我得到了这个休息,例如:
二十五
15
函数位置(){[本机代码]}
所以我的问题是为什么它认为变量名是函数而不是字符串 addNewLoc是否绑定在单击事件上?这是正常的目的 绑定事件时,第一个参数始终是事件 试试这个:
function addNewLoc(e, long, lat, name) {
console.log(long);
console.log(lat);
console.log(name);
}
因为您正在将
位置
传递给您的函数。它是某些浏览器中的本机构造函数。它不是代码中的字符串。您应该避免使用onclick
属性。您可以将值存储在data-*
属性中,使用jQuery为动态生成的元素委派事件,然后使用.data()
方法读取事件处理程序中的data-*
属性,如:$(this.data('location')
function addNewLoc(e, long, lat, name) {
console.log(long);
console.log(lat);
console.log(name);
}