2011-02-02 54 views
0

停止事件传播说,你有当事件处理函数接受参数

<tr onclick="viewJob(11)"> 
    <td>Job Id: 11</td> 
    <td><input type="button" onclick="cancelJob(11)"/></td> 
</tr> 

当TD点击按钮,我想避免在TR上执行viewJob()。我已经看到了如何用cancelJob(e)来做到这一点,但是当你有函数参数时,你如何做到这一点?

+0

我最终删除了 onclick,为所有​​添加了一个类,除了包含该按钮的类以外,还绑定了​​与所述类的点击处理程序。 – 2011-02-06 06:57:07

回答

0

你做事情的方式会让没有javascript的用户和那些带有屏幕阅读器的用户无法访问。

我会建议只在每个元素内放入一个标签。

否则,将onclick放在元素上

问题已解决。

0

在传入事件对象之后,您不能只是在调用中传递函数参数吗?

所以:

cancelJob(e, 11); 

然后你的js函数是:

function cancelJob(evt, jobId) 
{ 
} 

我认为这会工作得很好。

虽然你应该考虑从html中分离出js,但是这是针对不同的问题。

+0

我想从html中分离出js,但我不知道该怎么做,因为我正在遍历循环构建表之外没有的id列表。我可以再次遍历集合来绑定onclicks,但这是一个合适的折衷?这一定是一个共同的需求。什么是正确的解耦方式?我会尝试做cancelJob(e,11)。 – 2011-02-02 05:03:42

相关问题