禁用单个div之外的完整文档上的click事件

时间:2013-04-11 05:33:18

标签: jquery asp.net-mvc-3

我的MVC应用程序中有一个网页。像这样

<html>
<head>
</head>
<body>
<div id="1st_section"> Contents................... so on</div>
<div id="2th_section">Contents................... so on</div>
<div id="3th_section">Contents................... so on</div>
<div id="4th_section">Contents................... so on</div>
</body>
</html>

在浏览器中渲染此页面时,我们需要执行鼠标单击启用 <div id="1st_section"> Contents................... so on</div>仅限此部分。除此部分外,应在整个网页中禁用鼠标单击事件。

请您建议可行的方法吗?

7 个答案:

答案 0 :(得分:3)

如果您有来自其他地方的点击处理程序,则可以unbind使用* - 通用选择器:

$(function(){
    $('*').unbind('click');
    $('body > div#1st_section').bind('click', function(){
      //bind event listener goes here
    });

});

答案 1 :(得分:2)

使用jquery click()attribute selector

试试这个

$(document).ready(function(){
    $("div[id$='_section']").click(function(){
        alert('clicked');
    });
});

$("div[id$='_section']")选择所有div,其值完全以_section结尾。

<强>更新

更新后的问题..如果你只需要一个,那么使用id选择器

$(function(){
$("#1st_section").click(function() {
   alert('clicked');
})
});

答案 2 :(得分:2)

您可以将处理程序附加到整个身体,但在单击所需元素时执行操作。

var handler = function(event){    
    if($(event.target).is("#1st_section"))
              // do something
    else
         return false;
}
$(document).on("click", handler);

答案 3 :(得分:0)

由于id是唯一的,为什么不:

$("#1st_section").click(function() {
    // Your code here for 1st_section, the other sections and elements will not be affected
});

答案 4 :(得分:0)

是的,你可以这样做。

使用“pointer-events:none”以及IE的CSS条件语句,您可以获得针对此问题的跨浏览器兼容解决方案。

使用AlphaImageLoader,你甚至可以在o​​verlay div中放置透明的PNG / GIF,并让点击流到下面的元素。

     pointer-events:none;
     background:url('your_transparent.png');

答案 5 :(得分:0)

您可以使用.off() and .on()处理程序来绑定事件,使用通用选择器*来禁用点击:

试试这个:

$('*').off('click'); //<-----take out the click from every item on the page

$('#1st_section').on('click', function () { //<-binding the click to specific div
   alert('clicked');
});

Demo

答案 6 :(得分:-1)

你只想点击它,它也有Id

<div id="1st_section"> Contents................... so on</div>

所以你可以通过#dreg选择它来选择它。并且您可以在jquery中使用以下代码来生成click事件

$(document).ready(function(){
    $("#1st_section").click(function(){
//       here you code which you want to execute on click event 
    });
});

如果你想删除事件处理程序,可以使用jquery的off()

Remove an event handler.

已编辑:

所以你可以尝试这样的东西来删除文档中的所有点击事件,并在该div上添加点击事件

$(function () {
    $('*').off('click');
    $('#1st_section').on('click', function () {
        alert('HI');
    });
});

JS FIDDLE LINK FOR THIS