질문을 클릭했을 때 slideDown 및 Up이라는 답변으로 간단한 FAQ 페이지를 작성하려고합니다. 사용자가 "질문"클래스를 클릭하면 mytarget이 '#'+ [해당 질문의 ID] + 'ans'가되어 적절한 대답이 아래로 내려갑니다.
toggleSlide 부분은 대답의 ID 만 입력하면 작동합니다. .click 함수가 잘못되었거나 $ (this) 또는 두 가지 모두를 사용하고 있는지 확실하지 않습니다.
$(document).ready(function() {
var qid = '';
var mytarget = '';
function toggleSlide() {
if ($(mytarget).css('display') == 'none') {
$(mytarget).slideDown(600, 'swing');
}
else if ($(mytarget).css('display') == 'block') {
$(mytarget).slideUp(600, 'swing');
}
};
$('.answer').hide();
$('.question').click(function() {
qid = $('this').id();
mytarget = '#' + qid + 'ans';
toggleSlide();
});
});
감사! .answer가 div.answer보다 바람직한 이유는 무엇입니까? – DsDyer
나는 이것을 좋아한다. div.answer는 실제로 바람직하지 않습니다. jsPerf는 요소가없는 일반 클래스가 더 빠름을 보여줄 수 있습니다. 또한 $ (document) .ready()를 사용하는 것은 여전히 좋아합니다. 즉, 문서 준비 함수라는 코드를 누군가 (자신이나 다른 사람)에게 즉시 알기 쉽기 때문입니다. 하지만 그 부분은 개인적인 취향입니다. –
'$ (this) .attr ('id')'=>'this.id'. – gdoron