У мене була та сама проблема, я пробував кілька підходів, і жоден не працював у мене.
Рішення 1
$('.item').click(function(e)
{
if ( $(this).is('.ui-draggable-dragging') ) return false;
});
нічого не робить для мене. Елемент натискається після перетягування.
Рішення 2 (Том де Бур)
$('.item').draggable(
{
stop: function(event, ui)
{
$( event.originalEvent.target).one('click', function(e){ e.stopImmediatePropagation(); } );
}
});
Це працює чудово, але не вдається в одному випадку - коли я йшов повноекранним onclick:
var body = $('body')[0];
req = body.requestFullScreen || body.webkitRequestFullScreen || body.mozRequestFullScreen;
req.call(body);
Рішення 3 (Саша Яновець)
$('.item').draggable({
start: function(event, ui) {
ui.helper.bind("click.prevent",
function(event) { event.preventDefault(); });
},
stop: function(event, ui) {
setTimeout(function(){ui.helper.unbind("click.prevent");}, 300);
}
})
Для мене це не працює.
Рішення 4- єдине, що спрацювало чудово
$('.item').draggable(
{
});
$('.item').click(function(e)
{
});
Так, це все - правильний порядок робить трюк - спочатку потрібно прив’язати функцію перетягування (), а потім клацнути (). Навіть коли я ставлю повноекранний перемикаючий код у події click (), він все одно не переходить на повноекранний при перетягуванні. Для мене ідеально!