3

我有一个 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 a 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);

但这并没有按应有的方式打开弹出窗口-我该怎么做?

4

3 回答 3

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,');
};
于 2013-11-05T10:50:43.783 回答
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
       };
于 2013-11-05T10:50:24.910 回答
0

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

于 2013-11-05T10:52:30.273 回答