我有一个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)
但这不会打开弹出窗口应该 - 我怎么能这样做?
两个问题:
首先,您并不是每个人都将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)