hover()
のデフォルト設定はhandIn
とhandOut
ですが、とにかくslideUp
とSlideDown
をSlideToggle
内で検出できますか?
このようなコードを持っている:
$("#divName").slideToggle(function(){//when slideUp, do something},
function(){//when slideDown, do something});
私はこのコードを試しましたが、運が悪かったのですが、これで少し楽になることがあると思いますか?
slideToggle
はデフォルトではそれを許可していませんが、独自のバージョンを作成するのは簡単です。このようなものは、代替ハンドラーとして機能します。
_$('#divTrigger').click(function () { // Or bind to any other event you like, or call manually
var $t = $('#divToSlide');
if ($t.is(':visible')) {
$t.slideUp();
// Other stuff to do on slideUp
} else {
$t.slideDown();
// Other stuff to down on slideDown
}
});
_
同様に、slideUpまたはslideDownの後にアクションを発生させたい場合は、この$.slideUp(300, function() {// Callback here});
のようにそれらをコールバックに入れることができます。
スライドの状態を確認して、機能よりも作成するとどうなりますか?
$("#divName").slideToggle(function(){
var check=$(this).is(":hidden");
if(check == true)
{
//do something
}
});
純粋なjQueryにはメソッドがないため、いつでもフラグを保持できます。 #divName
が表示されていないと仮定すると、
var toggle_flag = 0;
$('#divName').click(function () {
$('#myelement').slideToggle();
if(toggle_flag==0){
//code for slide down
toggle_flag=1;
}else{
//code for slide up
toggle_flag=0;
}
});
#divName
がすでに表示されている場合は、var toggle_flag=1;
で開始して、このコードを使用できます。