Javascript函数调用无法通过链接工作

时间:2013-09-18 17:08:49

标签: javascript jquery

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

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

2 个答案:

答案 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>';