添加onClick到javascript函数

cha*_*lie 3 html javascript

我有一个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);
Run Code Online (Sandbox Code Playgroud)

为每行添加一个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);
Run Code Online (Sandbox Code Playgroud)

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

lon*_*day 8

两个问题:

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

var onClick = ...     // won't work
elLink.onclick = ...  // will work
Run Code Online (Sandbox Code Playgroud)

其次,您没有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,');
};
Run Code Online (Sandbox Code Playgroud)