2

我的 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>对此部分进行鼠标单击启用。除此部分外,应在整个网页中禁用鼠标单击事件。

您能否建议可能的方法来做到这一点?

4

7 回答 7

3

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

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

});
于 2013-04-11T05:37:14.057 回答
2

使用 jqueryclick()属性选择器

尝试这个

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

$("div[id$='_section']")选择所有值以 . 结尾的 div _section

更新

更新问题后..如果您只需要一个然后使用 id 选择器

$(function(){
$("#1st_section").click(function() {
   alert('clicked');
})
});
于 2013-04-11T05:35:12.783 回答
2

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

var handler = function(event){    
    if($(event.target).is("#1st_section"))
              // do something
    else
         return false;
}
$(document).on("click", handler);
于 2013-04-11T05:51:08.723 回答
0

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

$("#1st_section").click(function() {
    // Your code here for 1st_section, the other sections and elements will not be affected
});
于 2013-04-11T05:36:16.030 回答
0

是的,你可以这样做。

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

使用 AlphaImageLoader,您甚至可以将透明的 PNG/GIF 放在覆盖 div 中,并让点击流到下面的元素。

     pointer-events:none;
     background:url('your_transparent.png');
于 2013-04-11T05:42:54.933 回答
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');
});

演示

于 2013-04-11T05:50:25.347 回答
-1

你只想点击这个,它也有ID

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

因此您可以使用 # selector for Ids 来选择它。您可以在 jquery 中使用以下代码来生成点击事件

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

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

删除事件处理程序。

编辑:

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

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

JS FIDDLE 链接

于 2013-04-11T05:38:52.970 回答