3

ボタンがクリックされたときにテーブル行を追加する JavaScript 関数があります。

行を追加するとき、それが使用するセルの 1 つで:

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 を追加するには、a hrefonClickではなく使用できるようにしたい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

2 つの問題:

まず、すべての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 に答える