Javascript 当事件处理程序函数接受参数时停止事件传播
说你有Javascript 当事件处理程序函数接受参数时停止事件传播,javascript,events,handler,Javascript,Events,Handler,说你有 <tr onclick="viewJob(11)"> <td>Job Id: 11</td> <td><input type="button" onclick="cancelJob(11)"/></td> </tr> 职务编号:11 单击TD中的按钮时,我希望避免在TR上执行viewJob()。我已经了解了如何使用cancelJob(e)执行此操作,但是当您有函数参数时,如何执行此操作
<tr onclick="viewJob(11)">
<td>Job Id: 11</td>
<td><input type="button" onclick="cancelJob(11)"/></td>
</tr>
职务编号:11
单击TD中的按钮时,我希望避免在TR上执行viewJob()。我已经了解了如何使用cancelJob(e)执行此操作,但是当您有函数参数时,如何执行此操作?您执行操作的方式可能会使没有javascript的用户以及具有屏幕阅读器的用户无法访问 我建议只在每个元素中添加一个标记 否则,将onclick放在元素上
问题已解决。在传入事件对象后,您不能在调用中传递函数参数吗 因此: 那么您的js函数将是:
function cancelJob(evt, jobId)
{
}
我认为这会很好
虽然你应该考虑从HTML中分离JS,但这是另一个问题。我想把JS和HTML分开,但是我不知道如何做到这一点,因为我正在重复一个ID列表,这些ID是我在循环构建表之外没有的。我可以再次迭代集合以绑定onclick,但这是一个适当的折衷方案吗?这一定是一个共同的需要。什么是解耦的正确方法?我将尝试执行cancelJob(e,11)。我最终删除了onclick,在所有中添加了一个类,除了包含按钮的类之外,并将该类的click处理程序绑定到所述类。
function cancelJob(evt, jobId)
{
}