我试图创建触发第二个事件的jQuery事件。第一个事件是点击引用图像的表情符号。第二个是在页面周围移动图像的mousemove事件。当鼠标再次发生在页面主体的任何位置并将图像置于该绝对位置时,第三个事件会停止此事件。我能够得到第二个和第三个事件的工作,但我不能让第一个事件与第二个事件一起工作。这里是我到目前为止我的jQuery:创建触发第二个事件的事件
var mouseTracker = function(event) {
console.log(event.pageX, event.pageY, !!event.which)
$('#emoji').css('top', event.pageY);
$('#emoji').css('bottom', event.pageY);
$('#emoji').css('left', event.pageX);
$('#emoji').css('right', event.pageX);
}
var begin = function() {
$('body').on('mousemove', mouseTracker);
$('body').css('cursor', 'none');
}
var stop = function() {
$('body').off('mousemove', mouseTracker);
$('#emoji').css('postion', 'absolute')
$('body').css('cursor', 'default');
}
$('#emoji').on('click', begin);
$('body').on('click', stop);`
它不能正常工作,因为连接体处理程序立即触发。 –
我可能是错的 - 但为什么它触发如果你传递一个函数引用的事件对象? –
事件从'#emoji'传播到'body'。从'#emoji'点击处理程序存在后,事件会传播到'stop()',因为它已经连接。 –