javascript点击一行并触发该行";onclick”;事件


javascript to click a row and fire off that rows "onclick" event

我有一个表:

<table>
<th>Title</th>
<th>Artist</th>
<th>Length</th>
<tbody>
<?php
foreach ($lib as $name)
{
echo "<tr onmouseover='"ChangeColor(this, true);'" 
              onmouseout='"ChangeColor(this, false);'" 
              onclick='"dispSong('".$name->title. "','".$name->url."', this);'"><td>".$name->title."</td><td>".$name->artist."</td><td>".$name->time."</td></tr>";
}
?>
</tbody>
</table>

在javascript中,我可以找到下一行:

    function dispSong(theSong, url, elem)
  {
    document.getElementById('currSong').innerHTML = theSong;
    row = elem.rowIndex; 
    var song = document.getElementById('mp3');
    song.src = url;
    song.load();
  }
  function nextSong()
  {
    if (row == null) row = 1;
    else{
    alert(row+1);
    }
    document.getElementById('tr')[row].click;
    var song = document.getElementById('mp3');
    alert(song);
    song.src = url;
    song.load();
  }

我有一个名为next的按钮,它在单击时调用nextSong函数。我想知道当按下下一个按钮时,我是否可以用程序点击下一行。

这段代码应该允许您以编程方式触发事件:

var target = document.getElementsByTagName('tr')[row];
if(document.dispatchEvent) { // W3C
    var oEvent = document.createEvent( "MouseEvents" );
    oEvent.initMouseEvent("click", true, true,window, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
    target.dispatchEvent( oEvent );
}
else if(document.fireEvent) { // IE
    target.fireEvent("onclick");
}    

一些关于Mozilla initMouseEvent的文档。


编辑:

这就像<a/>元素的符咒,但似乎对"不起作用。。。