По какой-то причине мое .mouseup()
не вызывается. В идеале я хотел бы console.log, когда пользователь активирует mouseup()
.
Кто-нибудь знает, что не так?
$('.circle').mousedown(function () {
console.log('mousedone');
$(document).mousemove(function (e) {
console.log(e.pageY);
$('.circle').offset({
left: e.pageX,
top: e.pageY
});
});
});
$('.circle').mouseup(function () {
console.log('up');
});
var p = $('.square').position();
console.log(p.left);
Вы перемещаете круг от курсора после mousedown
события mousedown
. К тому моменту, когда кнопка мыши будет перемещена вверх, курсор больше не будет по кругу, а это означает, что событие $('.circle').mouseup
не будет вызываться.
Если вы держите круг под мышью, событие mouseup
будет захвачено. (См. Эту демонстрацию jsFiddle.)
EDIT: Если ваш элемент на самом деле является "кругом", ваша проблема, скорее всего, будет вызвана @Peter Olson.
Я рекомендую вам попробовать использовать
$('.example').on('mouseup', function(){ console.log('mouseup'); });
Вот пример: http://jsfiddle.net/Grimbode/qsE56/
Похоже, что ваши события называются.
$('.circle').on('mousedown',function () {
console.log('mousedone');
$(document).on('mousemove', function (e) {
console.log(e.pageY);
$('.circle').offset({
left: e.pageX,
top: e.pageY
});
});
});
$('.circle').on('mouseup', function () {
console.log('up');
});
var p = $('.square').position();
console.log(p.left);
Вы также можете проверить журнал, на нем написано "вверх".