我的页面建立方式如下:
<table>
<thead>
<tr>
<th>
Test
<div class="drag"/>
</th>
<th>
......
......
</th>
</tr>
</thead>
</table>
.drag {
position: absolute;
right: 0;
bottom: 0;
top: 0;
background-color: yellow;
width: 3px;
}
意图是在
<div class="drag"/>
上使用 mousedown/mouseup 事件拖动列的宽度,这个方法运行良好。但是我的 <th>
元素上也有一个 click 事件。问题是,当我仍然按住鼠标在 <th>
上释放时,<th>
的 click 事件仍然会触发。
我尝试了几件事情:
- 在几乎每个事件上都使用 stopPropagation()
- 在 mousedown 事件中返回 false
- 在 mousedown 事件中解绑 click 事件,然后在 mouseup 事件中重新绑定
还有其他防止 click 事件的方法吗?
编辑: 我仍然希望在那个 <th>
上保留 click 事件,但我不想在拖动后触发它。