Javascript jQuery表排序器:停止排序

Javascript jQuery表排序器:停止排序,javascript,jquery,tablesorter,Javascript,Jquery,Tablesorter,如果用户单击表格标题th内的div,是否可以停止表格排序 在我的例子中,div具有函数onClick=“resize(e)”,我在该函数上执行以下操作: function resize(e) { if (!e) var e = window.event; e.stopPropagation(); .... 但它不起作用 编辑:表格在e.stopPropagation()或return false停止传播阻止事件冒泡之前排序,但如果要取消默认操作,

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

在我的例子中,div具有函数
onClick=“resize(e)”
,我在该函数上执行以下操作:

function resize(e) {
        if (!e) var e = window.event;
        e.stopPropagation();
        ....
但它不起作用


编辑:表格在
e.stopPropagation()
return false

停止传播阻止事件冒泡之前排序,但如果要取消默认操作,则应使用event.preventDefault()

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

-包装在标记中的标题内容

$('table')
    .tablesorter()
    .find('.inner-header')
    .click(function(){
        console.log('header text clicked');
        return false;
    });
-使用
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;
            });
    }

});​
$('table').tablesorter({
//自定义标题HTML
onRenderHeader:函数(索引){
$(本)
.wrapInner(“”)
.find(“.internalheader”)
。单击(函数(){
log('header text clicked');
返回false;
});
}
});​

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

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

但是。。。。结果是jQuery表排序器将一个事件分配给mouseup事件,而不是click事件(正如您所期望的那样!)。所以,为了防止tablesort执行它的操作,您只需取消该事件即可。希望这有帮助


不起作用。首先对表进行排序,然后调用此函数。如何在表排序之前执行此函数?亲爱的Andrey,我认为这取决于您的html结构假设您有这样一个场景:如果您将onclick事件附加到TH,那么事件将从div冒泡到TH,然后在onclick函数中,您可以检查事件源,如果它是div,则可以使用stopprogation停止冒泡事件到TH,因此主排序事件将不会是firedStill排序:\by event source您指的是
if(event.srceelement.className==“resizer”)
?fadfa$(“th”)。在(“单击”时,函数(e){if(e.target!=this){e.stopPropagation();}否则{alert(“使排序工作”);});也许只使用
返回false会更容易
不要使用
onClick
属性,而是尝试使用jQuery(类似于
$(“th div”))附加一个click事件。单击(function(event){};
并将调整大小的代码放入该函数中。然后
event.stopPropagation()
可能有用。谢谢,但我也尝试过,就像Ajay beni所说的那样。你可以显示实时代码,或者最好是