1

我尝试从链接调用自定义函数,但不知何故它不起作用。不会弹出警报。帮助表示赞赏!这是我的代码:

$.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>';
4

2 回答 2

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()绑定事件。

于 2013-09-18T17:12:19.717 回答
-1

改变这个

link = '<a href="#" onclick=test()>' + data.tableName + '</a>';

对此

link = '<a href="#" onclick="javascript:test();">' + data.tableName + '</a>';
于 2013-09-18T17:16:11.813 回答