0
我正試圖編寫一個事件,它使用淡入淡出過渡來單擊元素後顯示文本。代碼似乎只用了一遍,但我希望它是一個無限循環的切換/取消切換文本。在文本切換一次然後切換一次之後,.fadeToggle()
似乎停止了反應,但其他一切看起來都正常。我需要這種方法,因爲.visuallyhidden
是屏幕閱讀器必須的(爲了美觀的目的淡入淡出)。.fadeToggle()在第二個循環後停止
$(document).ready(function() {
$('.CEL-clickToggleReaction').addClass('visuallyhidden');
$('.CEL-clickToggleAction').bind('click', openReaction);
function openReaction() {
$(this).parent().parent().find('.CEL-clickToggleReaction').removeClass('visuallyhidden');
$(this).parent().parent().find('.CEL-clickToggleReaction').hide();
$(this).parent().parent().find('.CEL-clickToggleReaction').fadeToggle(500);
$(this).attr('class', 'CEL-clickToggleActionOpen');
$(this).parent().parent().find('.CEL-clickToggleActionOpen').unbind();
$(this).parent().parent().find('.CEL-clickToggleActionOpen').bind('click', closeReaction);
}
function closeReaction() {
$(this).parent().parent().find('.CEL-clickToggleReaction').fadeToggle(500);
$(this).parent().parent().find('.CEL-clickToggleReaction').delay().queue(function (next) {
$(this).parent().parent().find('.CEL-clickToggleReaction').addClass('visuallyhidden');
$(this).parent().parent().find('.CEL-clickToggleReaction').show();
});
$(this).attr('class', 'CEL-clickToggleAction');
$(this).parent().parent().find('.CEL-clickToggleAction').unbind();
$(this).parent().parent().find('.CEL-clickToggleAction').bind('click', openReaction);
}
});
我很高興你來到StackOverflow :)我相信你會得到一些很好的建議如何編寫更好的代碼!歡迎 – 2013-04-05 23:03:57
除了問題之外,還有一點可以查看代碼在可能的情況下如何使用鏈接查找,並且在停止搜索同一個節點時將其緩存到變量中:http://jsfiddle.net/LPeVw/ – kidwon 2013-04-05 23:11:00
謝謝@kidwon!幸運的是,我不是開發/清理代碼行中的最後一個人。哈! – camh 2013-04-05 23:16:42