Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何取消tablesorter插件中的排序事件?_Jquery_Tablesorter - Fatal编程技术网

Jquery 如何取消tablesorter插件中的排序事件?

Jquery 如何取消tablesorter插件中的排序事件?,jquery,tablesorter,Jquery,Tablesorter,我想知道这是否可能: 在活动期间,我想检查某些条件,如果该条件为真,我想立即取消活动 在下面的例子中,如果满足这个条件,我想根本不允许用户对表进行排序 $(table).bind("sortBegin",function(e, table) { if(condition_is_met){ // ?? How to cancel the sortBegin? } }); 在jquery中是否可能出现类似的情况 更新: 抱歉 1) 我认为标记tablesorter将足够清

我想知道这是否可能:

在活动期间,我想检查某些条件,如果该条件为真,我想立即取消活动

在下面的例子中,如果满足这个条件,我想根本不允许用户对表进行排序

$(table).bind("sortBegin",function(e, table) { 
   if(condition_is_met){
     // ?? How to cancel the sortBegin?
   }

});
在jquery中是否可能出现类似的情况

更新

抱歉

1) 我认为标记
tablesorter
将足够清楚地表明我正在使用哪个插件无论如何
tablesorter
。谢谢


2) 我想不允许任何类型的排序,直到条件不再满足。我不介意是停止整个表的排序,还是只停止当前事件。

jQuery提供了unbind函数来从选择器中解除事件绑定

这里有一个例子

$('#foo').unbind('click');

jQuery提供了unbind函数来从选择器中解除事件绑定

这里有一个例子

$('#foo').unbind('click');

不幸的是,插件没有考虑到
preventDefault
——您要么需要修改它,要么抛出异常以中止 调用堆栈,它应该与受良好支持的
preventDefault
相同,但更丑陋

$(table).bind("sortBegin",function(e, table) { 
   if(condition_is_met){
     throw new Error("");
   }

});
jQuery中的IIRC,
.trigger()
同步工作,如果这是真的,那么它将工作

如果要修改插件,可以通过以下方式添加对
preventDefault
的支持:

var e = $.Event( "sortBegin" );
$this.trigger(e, $t0);
if( !e.isDefaultPrevented() ) {
    setTimeout(function(){
        // set css for headers
        setHeadersCss($t0);
        multisort($t0);
        appendToTable($t0);
    }, 1);
}

现在,当代码的客户端在sortBegin事件中调用
e.preventDefault()
时,插件将不会继续排序。

不幸的是,插件没有考虑
preventDefault
-您需要修改它或抛出异常以中止排序 调用堆栈,它应该与受良好支持的
preventDefault
相同,但更丑陋

$(table).bind("sortBegin",function(e, table) { 
   if(condition_is_met){
     throw new Error("");
   }

});
jQuery中的IIRC,
.trigger()
同步工作,如果这是真的,那么它将工作

如果要修改插件,可以通过以下方式添加对
preventDefault
的支持:

var e = $.Event( "sortBegin" );
$this.trigger(e, $t0);
if( !e.isDefaultPrevented() ) {
    setTimeout(function(){
        // set css for headers
        setHeadersCss($t0);
        multisort($t0);
        appendToTable($t0);
    }, 1);
}

现在,当代码的客户端在sortBegin事件中调用
e.preventDefault()
时,插件将不会继续排序。

使用.on、delegate、.off停止事件触发,返回false停止事件triggered@Alnitak在标签上。。我想。插件只会触发事件,不会对其作出反应。。。因此,如果不进行修改或抛出exceptionQuestion,则无法执行此操作。现在,问题已更新。哇,今天的否决票让触发器非常高兴:)@Alnitak它确实使用了sortbegin@Kave我已经使用过了-你现在得到的不是我的。使用.on,delegate,.off停止事件到触发器,返回false停止事件在它被触发后triggered@Alnitak在标签上。。我想。插件只会触发事件,不会对其作出反应。。。因此,如果不进行修改或抛出exceptionQuestion,则无法执行此操作。现在,问题已更新。哇,对今天的落选感到非常高兴:)@Alnitak它确实使用了sortbegin@Kave我已经使用过了-你现在得到的不是我的。这正是我需要的。现在我最好还是坚持使用
throw error
,否则每当我更新插件时都会很痛苦。我让插件作者知道,也许他可以用代码以正确的方式修复这个问题。谢谢,您可以通过将选项设置为
true
来禁用客户端排序。这正是我所需要的。现在我最好还是坚持使用
throw error
,否则每当我更新插件时都会很痛苦。我让插件作者知道,也许他可以用代码以正确的方式修复这个问题。感谢SBTW,您可以通过将选项设置为
true
来禁用客户端排序。