我尝试从链接调用自定义函数但不知何故它不起作用。警报不会弹出。帮助赞赏!这是我的代码:
$.each(data.Tables, function(i, data){
link = '<a href="#" onclick=test()>' + data.tableName + '</a>';
tr.append("<td>" + link + "</td>");
tr.append("<td>" + data.rowCount + "</td>");
$("#tablesTable").append(tr);
});
这是我的功能:
function test (){
alert("Doesn't work");
}
如果我将链接行更改为此链接,则在单击链接后会发出警报。
link = '<a href="#" onclick=alert()>' + data.tableName + '</a>';
答案 0 :(得分:3)
JavaScript在HTML属性中没有位置。 jQuery实际上可以将事件处理程序绑定到元素,即使它们不在DOM中,所以我建议你做这样的事情:
$.each(data.Tables, function(i, data){
var $link = $('<a></a>', { // Create a new jQuery object
href: '#',
html: data.tableName
}).click(function(){
// Your code here...
alert("Doesn't work");
});
// We can't use '+' since $link is no longer a string
tr.append($link.wrap('<td></td>').parent());
tr.append("<td>" + data.rowCount + "</td>");
$("#tablesTable").append(tr);
});
这使用jQuery创建<a>
标记,然后使用.click()
绑定事件。
答案 1 :(得分:-1)
更改此
link = '<a href="#" onclick=test()>' + data.tableName + '</a>';
到这个
link = '<a href="#" onclick="javascript:test();">' + data.tableName + '</a>';