Aynı sorunu yaşadım ve birden fazla yaklaşım denedim ve hiçbiri benim için işe yaramadı.
1.Çözüm
$('.item').click(function(e)
{
if ( $(this).is('.ui-draggable-dragging') ) return false;
});
benim için hiçbir şey yapmaz. Sürükleme tamamlandıktan sonra öğe tıklanıyor.
Çözüm 2 (Tom de Boer tarafından)
$('.item').draggable(
{
stop: function(event, ui)
{
$( event.originalEvent.target).one('click', function(e){ e.stopImmediatePropagation(); } );
}
});
Bu gayet iyi çalışıyor ancak bir durumda başarısız oluyor - tam ekrana geçerken onclick:
var body = $('body')[0];
req = body.requestFullScreen || body.webkitRequestFullScreen || body.mozRequestFullScreen;
req.call(body);
Çözüm 3 (Sasha Yanovets tarafından)
$('.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);
}
})
Bu benim için çalışmıyor.
Çözüm 4- İyi çalışan tek çözüm
$('.item').draggable(
{
});
$('.item').click(function(e)
{
});
Evet, işte bu - doğru sıra hile yapar - önce sürüklenebilir () bağlamanız ve ardından () olayına tıklamanız gerekir. Click () olayına tam ekran geçiş kodunu koysam bile, sürüklerken hala tam ekrana geçmedi. Benim için mükemmel!