Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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
Javascript 如何从排序表标题中删除单击_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 如何从排序表标题中删除单击

Javascript 如何从排序表标题中删除单击,javascript,jquery,dom,Javascript,Jquery,Dom,第一次发布,虽然我已经在这里接受了一段时间的有益建议 我有一个表,它是通过一些Jquery函数排序的,我没有自己构建,所以不确定它是如何运行的。如果单击了一个标题列,它将按照该列对表进行排序,首先是向上,然后是向下-标准内容。我想删除第一列的排序,因为这是一系列复选框,排序会干扰手机上的checkall功能 我尝试使用以下脚本。首先删除排序类,然后尝试删除单击功能。该类正在被删除(因此javascript正在工作),但仍可以单击头,在该头上分配一个新类,因此此removeAttr实际上不起作用(

第一次发布,虽然我已经在这里接受了一段时间的有益建议

我有一个表,它是通过一些Jquery函数排序的,我没有自己构建,所以不确定它是如何运行的。如果单击了一个标题列,它将按照该列对表进行排序,首先是向上,然后是向下-标准内容。我想删除第一列的排序,因为这是一系列复选框,排序会干扰手机上的checkall功能

我尝试使用以下脚本。首先删除排序类,然后尝试删除单击功能。该类正在被删除(因此javascript正在工作),但仍可以单击头,在该头上分配一个新类,因此此removeAttr实际上不起作用(这是我在本网站上找到的解决方案)


!函数($){
$(函数(){
$('th:first child').removeClass(“排序”);
$('th:first child').removeAttr('onclick');
})
}(window.jQuery)

感谢您的帮助。非常感谢,DomC

之所以
.removeAttr('onclick')
不起作用,是因为有一个全局事件处理程序,可能在某些.js文件中(这是正确的位置!)。onclick将是内联javascript,这是一个禁忌

要将其从全局eventhandler列表中删除,请使用jQuery的:

或者,如果您有较旧版本的jQuery:

或者,如果只想关闭一个功能:

// If ´otherFunction´ is bound to click aswell, it will remain working
$('th:first-child').off('click', functionname);
或者,删除所有事件(即单击、悬停、调整大小):


.removeAttr('onclick')
不起作用的原因是有一个全局事件处理程序,可能在某个.js文件中(这是正确的位置!)。onclick将是内联javascript,这是一个禁忌

要将其从全局eventhandler列表中删除,请使用jQuery的:

或者,如果您有较旧版本的jQuery:

或者,如果只想关闭一个功能:

// If ´otherFunction´ is bound to click aswell, it will remain working
$('th:first-child').off('click', functionname);
或者,删除所有事件(即单击、悬停、调整大小):


@Martijn答案可能会满足您的要求。但我在这里提供更多细节

这取决于事件(
单击
)的注册方式。 从第一个标题单元格中删除class或onclick属性可能没有帮助

它们可能用于将onclick事件绑定到该元素。但是你需要解开这个事件

当用户单击标题单元格时,它会触发一个事件。有一些方法绑定到触发器上执行的事件。可能有一个或多个这样的方法在事件上执行

在这种情况下,事件是
单击

要删除
单击的所有方法的绑定,可以使用以下命令-

$('th:first-child').off('click');

//For old Jquery Version as mentioned by @Matijn
//$('th:first-child').unbind('click');
如果您希望解除特定方法的绑定-

$('th:first-child').off('click', reference_to_function);

@Martijn答案可能会满足您的要求。但我在这里提供更多细节

这取决于事件(
单击
)的注册方式。 从第一个标题单元格中删除class或onclick属性可能没有帮助

它们可能用于将onclick事件绑定到该元素。但是你需要解开这个事件

当用户单击标题单元格时,它会触发一个事件。有一些方法绑定到触发器上执行的事件。可能有一个或多个这样的方法在事件上执行

在这种情况下,事件是
单击

要删除
单击的所有方法的绑定,可以使用以下命令-

$('th:first-child').off('click');

//For old Jquery Version as mentioned by @Matijn
//$('th:first-child').unbind('click');
如果您希望解除特定方法的绑定-

$('th:first-child').off('click', reference_to_function);

单击事件是如何注册的?不要尝试撤消您不理解的其他代码所执行的操作。。。转到另一个代码并在源代码处修复它。@KevinB的可能重复可能存在这样的情况,即他不允许或没有技能/时间修改该表格分拣机代码的源代码。做这样一个小的猴子补丁真的有害吗?从维护的角度来看,是的,它会非常有害。像这样的猴子补丁可能会花费另一个不了解它的开发人员很多小时的工作时间,试图找出他的排序不起作用的原因。点击事件是如何注册的?不要试图撤销其他你不理解的代码所做的。。。转到另一个代码并在源代码处修复它。@KevinB的可能重复可能存在这样的情况,即他不允许或没有技能/时间修改该表格分拣机代码的源代码。做这样一个小的猴子补丁真的有害吗?从维护的角度来看,是的,它会非常有害。像这样的猴子补丁可能会花费另一个不了解它的开发人员很多小时的工作时间,试图找出他的排序不起作用的原因。我相信我有相同的信息,只删除了一个函数或事件,我会更清楚一点:)我最初是在编辑你的答案。因为我认为OP一开始并不知道这些事件。我相信我有相同的信息,只删除了一个函数或事件,我会更清楚一点:)我最初是在编辑你的答案。因为我认为OP一开始并不知道这些事件。你能解释一下removeAttr('onclick')和全局事件处理程序吗。此时onclick=“something”被解析,为什么删除它不起作用。感谢Martijn(和其他人)对此的快速响应。第一个有效。这里有一个奇怪的怪癖,当你选择一个其他的标题对该列进行排序时,某个地方的javascript会应用回我删除的类。是否有一个像.off这样的功能,我可以应用它,当您对另一列进行排序时,它将停止重新引入该类。如果您认为答案是:)请将其标记为解决方案来回答您的另一个问题:我认为您应该查找它的作用并修复它。解决问题比隐藏问题要好。您可以进一步解释removeAttr('onclick')和全局事件处理程序。在什么时候解析onclick=“something”,为什么要删除
$('th:first-child').off('click', reference_to_function);