我有一个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);
但是这不会打开弹出窗口 - 我该怎么做?
答案 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
元素以使其触发。目前,这似乎并没有发生。