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执行它的操作,您只需取消该事件即可。希望这有帮助
- 本
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所说的那样。你可以显示实时代码,或者最好是