Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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_Css_Html_Jquery Plugins - Fatal编程技术网

Javascript 对单个列禁用单击事件

Javascript 对单个列禁用单击事件,javascript,jquery,css,html,jquery-plugins,Javascript,Jquery,Css,Html,Jquery Plugins,有人能告诉我如何禁用特定列的点击事件吗 场景:我们在一个表中显示用户详细信息,一旦在表行上单击,弹出的对话框窗口将显示更多详细信息(调用ajax请求从数据库中检索详细信息)。但我们的约束是对与表关联的单个列禁用单击事件 例如: 名称 身份证件 电话号码 克鲁帕 123 如果对文本(第1列和第2列)进行了单击,它将调用单击事件。但若用户点击超链接(第三列),我想将其重定向到Google,但不想点击事件(testing()) 有谁能帮我做到这一点。试试: $(函数(){ $('table td

有人能告诉我如何禁用特定列的点击事件吗

场景:我们在一个表中显示用户详细信息,一旦在表行上单击,弹出的对话框窗口将显示更多详细信息(调用ajax请求从数据库中检索详细信息)。但我们的约束是对与表关联的单个列禁用单击事件

例如:


名称
身份证件
电话号码
克鲁帕
123
如果对文本(第1列和第2列)进行了单击,它将调用单击事件。但若用户点击超链接(第三列),我想将其重定向到Google,但不想点击事件(testing())

有谁能帮我做到这一点。

试试:

$(函数(){
$('table td')。在('click',function()上{
if($(this).index()==2){
返回false;//禁用第三列
}
});
$('table tr')。在('click',function()上{
警报(“您单击该行”);
});
});

123
123
123
123

如果只希望单击事件运行一次,理论上可以使用jquery的
.one()
功能,而不是
.on()
。这将在运行一次后自动解除事件绑定。当然,这意味着您必须在以后再次绑定事件(如果需要)

比如说

$('.selector').one('click', function(){
    // your callback functionality
});
$('.selector').on('click', function(){
    if (check_if_popup_is_active) {
        return;
    }
    // otherwise continue with
    // your callback functionality
});
您可以做的另一件事是以某种方式检查
弹出窗口是否处于活动状态,如果处于活动状态,则阻止单击处理程序运行

比如说

$('.selector').one('click', function(){
    // your callback functionality
});
$('.selector').on('click', function(){
    if (check_if_popup_is_active) {
        return;
    }
    // otherwise continue with
    // your callback functionality
});

您可以在回调中使用jQuery
.unbind()
函数

以下表为例

<table>
  <tr>
    <th class='foo'>bar</th>
  </tr>
</table>

如何将单击事件添加到列中,然后在使用单击事件后将其删除。这将删除单击的列的事件,但任何其他事件仍应有效

$( '.column' ).on( 'click', function()
{
    // do ajax stuff... 

    // remove event 
    $( this ).unbind(); 

}); 

您可以通过CSS实现这一点

you_css_selector {pointer-events:none;}
通过CSS实现这一点

table td:nth-child(2) {
    pointer-events: none;
}

你能分享你的表格标记吗?一些代码,任何代码,都会有很大的帮助here@adeneo它得到了两张赞成票。太好了,谢谢拉希尔。但问题是我的第三个超链接。一旦点击了链接,我希望它重定向到给定的地址,但不是点击事件。你能告诉我如何实现吗this@Krupa不调用tr上的click事件通过jquery$在td上调用它('table td:not(#disableClick'))。单击(function(){alert('test');});谢谢jcubic,但问题是我的第三列包含超链接。一旦点击了链接,我希望它重定向到给定的地址,但不是点击事件。你能帮我实现吗this@Krupa第4列中的链接应该可以工作,您只需禁用单击td。@Krupa另一种解决方案是添加
e.stoppropagion()
以单击标记。