0

我有两个 DIV:

<div id="div1"></div>
<div id="div2"></div>

在特殊情况下div2采用 z-index:999。在那种情况下,我无法点击div1。定义的jquery函数:

$j = jQuery.noConflict();
$j(function() {
    $j(document).click( function(e) {
        var clicked = $j(e.target);
    })
})

所以,场景如下:

  • 如果在具有相同 z-index 的任何 div 上发生单击,则调用 $j(document).click 函数

  • $j(document).click 函数,如果点击发生在具有更大z-index 的 div 上并且不会在点击另一个时调用

有没有办法处理整个屏幕上的所有点击?

4

1 回答 1

1

如果您想确保处理任何深度的任何 div 上的每次点击,您可以在单击文档时验证鼠标是否在上方,然后触发该 div 的单击事件。关于什么 :

$(document).click(function(e){
    $('div').each(function(){
        if (e.pageX >= $(this).position.left &&
            e.pageX <= $(this).position.left+$(this).width() &&
            e.pageY >= $(this).position.top &&
            e.pageY <= $(this).position.top+$(this).height()
         ){
            $(this).trigger('click');
         }
    });
});

这是一个矫枉过正的解决方案,但它可能会起作用..希望这会有所帮助。

于 2012-07-10T09:52:44.437 回答