2014-10-29 50 views
1

我使用jquery创建了一个简单的注释特性。注释功能正常工作,即当我单击页面时它会创建一个评论框。但它有一个缺点,即使点击评论框,也会创建一个新的评论框。这不是我想要的。仅将事件应用于尖锐的元素,但不是子元素

我想创建一个新的评论框,当用户点击.body元素,但不是它的子元素,如评论框。

Fiddle

我试图通过如图中下面的代码专门提及的子元素来解决这一点。但这甚至不会触发.body元素上的事件。

$(document).on('mousedown', '.body', function (e) { 
     //code here 
}).on('mousedown', '.body *', function(e){ return false; }); 

回答

4

什么,你可以尝试是检查是否e.target.body

$(document).on('mousedown', '.body', function (e) { 
    if (!$(e.target).hasClass('body')) { 
     return; 
    } 

    //your code 
}); 

但在你的情况下,由于.pdfcontent是覆盖整个.body可能要

$(document).on('mousedown', '.body .pdfcontent', function (e) { 
    var body = $('.body'); 
    var width = body.width(); 
    var height = body[0].scrollHeight; 

    var left = (e.pageX/width) * 100; 
    var top = (e.pageY/height) * 100; 
    setElement(left, top); 
}); 

演示:Fiddle

+0

谢谢..但是现在的情况下甚至不适用于'.body'元素。 [小提琴](http://jsfiddle.net/venkateshwar/70b4Loh1/13/) – 2014-10-29 11:54:47

+0

@Mr_Green查看更新 – 2014-10-29 11:56:53

+0

nope ..不能做更新的方法,因为它实际上应该是pdf文档本身。但我认为我应该包装另一个元素来克服这个问题..我会考虑这个解决方法..谢谢。 – 2014-10-29 11:57:34

相关问题