0

是否可以只使 div 的一部分可点击——比如 clickmap/imagemap?可以用 jQuery 吗?提示:我不想编辑 html(带有 200 个单独 html 文件的误用模板)。

4

4 回答 4

5

当您的 div 被点击时,事件处理程序会接收到该事件,因此您可以测试点击的位置。

如果需要,您可能希望使用单击的元素位置和大小,$(this).offset()使用$(this).width()$(this).height()。例如 :

$('mydivselector').click(function(e) {
     if (e.pageY > $(this).offset().top + 0.5*$(this).height()) {
          // bottom was clicked

     } else {
          // up of the div was clicked

     }
});

如果要阻止默认操作和事件传播,请从事件处理程序返回 false。

于 2013-03-11T13:05:41.773 回答
1

您可以尝试为所有元素制作一个 jQuery 选择器,并对一些元素进行切片

var selector = "#mydiv";
var numberOfElements = $(selector).find('*').length/2; //It's just an example

$(selector).find('*').slice(0, numberOfElements).click(function()  {
 [....]//do stuff
});
于 2013-03-11T13:08:39.393 回答
0

您可能需要使整个 div 可单击,然后通过检查单击的坐标来确定您是否要处理该事件。

于 2013-03-11T13:06:49.057 回答
0

您可以检查事件对象offsetX的和offsetY属性的值,如果您不喜欢它们,则决定什么也不做。

例子

或者,如果您需要click 事件根本不触发,您可以动态创建额外的透明<div>s 并将它们部分放置在现有元素的前面,以便它们掩盖您不想响应点击的部分。

于 2013-03-11T13:07:58.773 回答