ここでかなりの問題が発生しています。この Web サイトをチェックしてください。灰色のボタンをクリックすると表示され、もう一度クリックすると非表示になります。しかし、(ドラッグ開始時に) ボタンをドラッグしてコンテンツを表示すると、クリックして開いたり閉じたりすることができなくなります。コードを調べてボタンをクリックすると、.nursebutton の値が (0 -> 275 および -275 -> 0 に) 変化することがわかります。関数が適切に実行されない原因が何であるかはわかりませんslideNurse()
。
「拡張」jquery.event.dragを他のJqueryと一緒に使用していますが、おそらくこれが問題ですか? あなたのいずれかがこの問題に遭遇したことがありますか? 私の問題に対する賢い代替ソリューションはありますか? ドラッグ機能と「クリック時」機能のアニメーションの両方が必要です。
以下はjqueryコードです。
ありがとう =)
var showing = false;
jQuery(function($){
var $div = $('#container');
$('.nursebutton')
.drag("start",function( ev, dd ){
dd.limit = $div.offset();
dd.limit.right = dd.limit.left + $div.outerWidth() - $( this ).outerWidth();
})
.drag(function( ev, dd ){
$( this ).css({
left: Math.min( dd.limit.right, Math.max( dd.limit.left, dd.offsetX ) )
});
$('#nurseView').css({
left: Math.min( dd.limit.right, Math.max( dd.limit.left, dd.offsetX ) )
});
})
.drag("end",function(ev, dd ){
var treshold = dd.offsetX;
var menu = $('#nurseView');
if(treshold>1712){
$("#nurseView").animate({"left": "1872px"}, "fast");
$(".nursebutton").animate({"left": "1872px"}, "fast");
}
else{
$("#nurseView").animate({"left": "1595px"}, "fast");
$(".nursebutton").animate({"left": "1595px"}, "fast");
}
});
});
function slideNurse(){//This function works before I "activate thejquery function above
if (!showing) {
showing = true;
$("#nurseView").animate({"right": "+=275px"}, "slow");
$(".nursebutton").animate({"right": "+=275px"}, "slow");
} else {
showing = false;
$("#nurseView").animate({"right": "-=275px"}, "slow");
$(".nursebutton").animate({"right": "-=275px"}, "slow");
}
}