jQuery Table sorter:停止排序

如果用户点击表头中的div ,是否可以停止表排序?

在我的情况下,div具有onClick="resize(e)"function,我在其上执行:

 function resize(e) { if (!e) var e = window.event; e.stopPropagation(); .... 

但它不起作用。

编辑:表在e.stopPropagation()之前排序或return false

我为你做了两个演示。 第一个包含在一个span中的表头内容,第二个使用未记录的onRenderHeader函数在头中添加span 。 无论哪种方式,只有span的内容是可点击的(文本),而单击内容外部将对列进行排序。 如果仅使用div ,则可以使用标题填充来初始化列排序。

演示1 – 包含在标记中的标题内容

 $('table') .tablesorter() .find('.inner-header') .click(function(){ console.log('header text clicked'); return false; }); 

演示2 – 使用onRenderHeader选项包装的标题内容

 $('table').tablesorter({ // customize header HTML onRenderHeader: function(index) { $(this) .wrapInner('') .find('.inner-header') .click(function(){ console.log('header text clicked'); return false; }); } });​ 

如果您需要有关使用onRenderHeader选项的更多信息,请查看我的博客文章 ,了解文档中缺少的内容。

停止传播可以防止事件冒泡但是你要取消默认操作你应该使用event.preventDefault()

我刚遇到这个问题。 我尝试了所有建议,包括直接将非委托事件处理程序分配给我想要的精确元素,然后停止所有传播+事件本身。 仍然没有运气。

但是……结果是jQuery tablesorter为mouseup事件分配了一个事件,而不是click事件(正如你所期望的那样!)。 因此,为了防止tableort做这件事,你只需要取消该事件。 希望这可以帮助。