获取窗口上的单击位置

dcd*_*eiv 0 javascript jquery position offset

当用户单击窗口的任何部分时,我试图获取单击的位置.我在许多教程中发现了这段代码,但似乎没有用.

(function( $ ) {
    $( document ).ready(function() {

        $( window ).click(function( e ) {
            var offset = $(this).offset(),
                relativeX = (e.pageX - offset.left),
                relativeY = (e.pageY - offset.top);

                alert("X: " + relativeX + "  Y: " + relativeY);
        });
    });
})( jQuery );
Run Code Online (Sandbox Code Playgroud)

Firefox控制台告诉我"TypeError:offset is undefined",我不明白为什么它不起作用.

检索窗口上的点击位置的正确方法是什么?

Iro*_*are 5

该代码非常接近于工作.如果替换$(this)为,它将正常工作$(e.target).这将获得click事件的左侧和顶部偏移,而不是它window自身.

(function($) {
    $(document).ready(function() {

        $(window).click(function(e) {
            var relativeX = (e.pageX - $(e.target).offset().left),
                relativeY = (e.pageY - $(e.target).offset().top);

                alert("X: " + relativeX + "  Y: " + relativeY);
        });
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/IronFlare/7wsamt87/