`mousemove`并触发自定义事件

时间:2014-11-06 14:50:22

标签: javascript jquery javascript-events

mousemove事件中:

$(document).on('mousemove', function( e ){
    console.log( e.pageX );
    console.log( e.pageY );
});

如您所见,我们可以使用pageXpageY来获取鼠标位置的xy坐标。但是,我想要的是在mousemove触发我的自定义事件,并希望在我的自定义事件中获得这些pageXpageY值。更清楚的是,我想做的是:

$(document).on('mousemove', function(){
    $(document).trigger('myevent');
});

$(document).on('myevent', function( e ){
    // console.log( e.pageX );
    // console.log( e.pageY );
});

有没有办法在pageX中访问这些pageYmyevent

2 个答案:

答案 0 :(得分:3)

.trigger()允许通过其参数传递其他数据。你可以打电话

$(document).on('mousemove', function( event ){
    $(document).trigger('myevent', event);
});

现在,您可以访问自定义事件代码中的整个原始event对象。

答案 1 :(得分:1)

另一个选择是创建一个自定义事件,如

$(document).on('mousemove', function(e) {
  var event = $.Event('myevent', {
    pageX: e.pageX,
    pageY: e.pageY
  });
  $(document).trigger(event);
});

$(document).on('myevent', function(e) {
  log(e.pageX + ':' + e.pageY)
});

var log = function(message) {
  var $log = $('#log');
  $log.html(message)
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="log"></div>