jQuery Table sorter:停止排序

时间:2012-06-20 10:30:01

标签: javascript jquery tablesorter

如果用户点击表标题div内的th,是否可以停止表格排序?

在我的案例中,div具有我所做的函数onClick="resize(e)"

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

但它不起作用。

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

3 个答案:

答案 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()