Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当事件处理程序函数接受参数时停止事件传播_Javascript_Events_Handler - Fatal编程技术网

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)
{
}