添加onClick到javascript函数

时间:2013-11-05 10:45:13

标签: javascript html

我有一个javascript函数,可以在单击按钮时添加表格行。

在其中一个单元格中添加行时使用:

var linkCell = row.insertCell(1);
var elLink = document.createElement('a');
var href='http://www.domain.co.uk/';
elLink.href = href;
elLink.innerHTML = 'Choose Product '+i;
linkCell.appendChild(elLink);

向每行添加HTML href,但我希望能够使用onClick而不是href

我试过了:

var linkCell = row.insertCell(1);
var elLink = document.createElement('a');
var href='javascript:void(0);';
var onClick=window.open('/admin/chooseproduct.php?c='+i,'Popup','width=550,height=500,left=150,top=200,toolbar=1,status=1,');
elLink.href = href;
elLink.innerHTML = 'Choose Product '+i;
linkCell.appendChild(elLink);

但是这不会打开弹出窗口 - 我该怎么做?

3 个答案:

答案 0 :(得分:8)

两个问题:

首先,并非每个人都将onclick方法应用于元素:您只是将其定义为变量。

var onClick = ...     // won't work
elLink.onclick = ...  // will work

其次,您没有使用您正在编写的代码创建onclick处理程序。 onClick = window.open(...)没有说“单击元素时打开一个窗口”。相反,它说“立即打开一个窗口,并将onClick设置为对该窗口的引用”。

您需要创建一个新功能。此函数将被指定为事件处理程序,仅在单击链接时执行。它本身会调用window.open

elLink.onclick = function() {
    window.open('/admin/chooseproduct.php?c='+i,'Popup','width=550,height=500,left=150,top=200,toolbar=1,status=1,');
};

答案 1 :(得分:0)

以下是您的解决方案:

var linkCell = row.insertCell(1);
        var elLink = document.createElement('a');
        var href='javascript:void(0);';
        elLink.href = href;
        elLink.innerHTML = 'Choose Product '+i;
        linkCell.appendChild(elLink);
        elLink.onclick= function() {
        window.open('/admin/chooseproduct.php?
       c='+i,'Popup','width=550,height=500,left=150,top=200,toolbar=1,status=1,'); //Attach event here
       };

答案 2 :(得分:0)

使用jQuery太久了。但是我仍然认为您需要将您定义的onClick函数分配给elLink元素以使其触发。目前,这似乎并没有发生。