これは、私が自分でつなぎ合わせた最初の jquery スクリプトです。if/else ステートメントを機能させようとして問題が発生しています。クリックしたボックス/リンクが現在表示されている場合、スクリプトを実行しないようにしたいだけです。
if ステートメントなしで動作するスクリプトは次のとおりです。http://jsfiddle.net/Vitruvius/yqMAN/
$('.link').click(function () {
var parentName = $(this).closest('ul').attr('id');
var boxNumber = $(this).attr('id');
$('.' + parentName).children('.active').toggle('slide',{direction:'right'},function(){
$('.' + parentName + ' ' + 'div').removeClass('active');
$('.' + parentName).children('.' + boxNumber).show().effect('slide').addClass('active');
});
});
これがifステートメントでの私の試みです: http://jsfiddle.net/Vitruvius/h8CMU/
$('.link').click(function () {
var parentName = $(this).closest('ul').attr('id');
var boxNumber = $(this).attr('id');
if($('.' + parentName).children('.' + boxNumber).hasClass('active')){
return:false;
}
else {
$('.' + parentName).children('.active').toggle('slide',{direction:'right'},500,function(){
$('.' + parentName + ' ' + 'div').removeClass('active');
$('.' + parentName).children('.' + boxNumber).show().effect('slide').addClass('active');
});
}
});
また、スライド効果がスライドを終了する前に最後の要素を非表示にする理由を知っている人はいますか? 答えはどこにも見つかりませんでした。
ヒントや提案があれば教えてください。ありがとう。