firefox onclick事件

时间:2012-02-05 12:20:12

标签: php jquery

此onclick功能:

VVi".$row['id'].".onclick = function() {
   alert('1');
   var ResultI = '".$row['id']."';
   location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
};

无法在firefox上调用...我在chrome和opera上尝试过,一切正常......所以我怎么能调用一切在所有浏览器上都能正常工作的函数。我需要类似的方法,因为我不希望相关的代码生效...谢谢

编辑:

Firefox结果:

<a class='menuLink' id='VVi19'>
<div id='IIi19' style='width: 230px;
height: 136px;
background: url(res/images/images.jpg);
background-size: contain;
background-repeat: no-repeat;
background-position:center;'></div>
</a>
</td>
<script type='text/javascript'>
VVi19.onclick = function() {
    alert('1');
var ResultI = '19';
location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
     };
</script>

1 个答案:

答案 0 :(得分:1)

一个声明为闭包的函数就像你所做的那样是一个赋值语句,因此必须用分号;终止。

有些ECMAScript引擎比其他人更宽容 - 尝试添加分号,如下所示:

     // ...
     location.href='visuals.php?ResultI=' + ResultI + '&pg=' + pgi + '&vid=false';
   };
//  ^ Add this teminator
在检查完整个代码之后,

编辑似乎问题是你的标签订单全部搞砸了,这就是它无法正常工作的原因。除此之外,<script>元素无效为<table>的直接子元素,<td>应包含在<tr>中。您还在循环中分配静态id=,这会导致重复的元素ID,并且您似乎使用以其ID命名的对象引用HTML元素,而不将该元素分配给该对象。

尝试更改:

VVi".$row['id'].".onclick = function() {

要:

document.getElementById('VVi".$row['id']."').onclick = function() {

...虽然即使这确实解决了您的问题,但您可能会发现其他不起作用的东西。您需要通过W3C markup validation service传递所有生成的网页,并且还应该看到JSLint对您的Javascript的评论。