我在KnockoutJs中有下列表格作为脚本模板:
<script id="inBoxTemplate" type="text/html"> <tr data-bind="click: function() { viewInBoxModel.selectAction($data); }"> <td>...</td> <td>${ CreateDate }</td> <td data-bind="click: function(e){ e.preventDefault();viewInBoxModel.clearAction($data); }"><img src="/Content/images/delete.png" height="16px" width="16px"> </td> </tr> </script>
问题是当我点击删除按钮,它也运行了selectAction()方法。我已经尝试在selectAction点击处理程序中使用e.preventDefault(),并且clearAction()clicker处理程序无效。有没有KnockoutJs可以防止底层行从现在点击,如果删除按钮被点击?
解决方法
如果你有jQuery引用,那么你可以安全地调用e.stopImmediatePropagation();在你的处理程序中,因为它传递了jQuery事件对象。如果你没有使用jQuery,那么你仍然可以做一些事情:
e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();