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做这件事,你只需要取消该事件。 希望这可以帮助。
- 本