如果用户点击表标题div
内的th
,是否可以停止表格排序?
在我的案例中,div具有我所做的函数onClick="resize(e)"
:
function resize(e) {
if (!e) var e = window.event;
e.stopPropagation();
....
但它不起作用。
编辑:表格在e.stopPropagation()
或return false
之前排序
答案 0 :(得分:7)
我为你做了两个演示。第一个包含在一个span中的表头内容,第二个使用未记录的onRenderHeader
函数在头中添加span
。无论哪种方式,只有span
的内容可点击(文本),而点击内容外部将对列进行排序。如果您使用div
,则只有标题填充可用于初始化列排序。
Demo 1 - 标记内容包含在标记
中$('table')
.tablesorter()
.find('.inner-header')
.click(function(){
console.log('header text clicked');
return false;
});
Demo 2 - 使用onRenderHeader
选项
$('table').tablesorter({
// customize header HTML
onRenderHeader: function(index) {
$(this)
.wrapInner('<span class="inner-header"/>')
.find('.inner-header')
.click(function(){
console.log('header text clicked');
return false;
});
}
});
如果您需要有关使用onRenderHeader
选项的更多信息,请查看我的blog post,了解文档中缺少的内容。
答案 1 :(得分:5)
我刚遇到了这个问题。我尝试了所有建议,包括直接将非委托事件处理程序分配给我想要的精确元素,然后停止所有传播+事件本身。仍然没有运气。
但....结果是jQuery tablesorter为 mouseup 事件分配了一个事件,而不是 click 事件(正如您所期望的那样!)。因此,为了防止tableort做这件事,你只需要取消该事件。希望这会有所帮助。
答案 2 :(得分:4)
停止传播阻止事件冒泡但你要取消默认操作你应该使用event.preventDefault()