2014-11-27 5 views
0

이 두 함수를 결합하고 싶습니다. 그러나 그것을 이해할 수는 없습니다. (미안, 학습 진행 중 ...)jquery의 두 함수를 결합하십시오.

jQuery(document).ready(function($) { 

    var $mores = $('#widget-about .textwidget').hide(); 

    var $titles = $('#widget-about a').click(function() { 
    var $more = $(this).next('#widget-about .textwidget').slideToggle(); 
    $mores.not($more).slideUp();  
    }); 
}); 

jQuery(document).ready(function($) { 

    var $mores = $('#widget-contact .textwidget').hide(); 

    var $titles = $('#widget-contact a').click(function() { 
    var $more = $(this).next('#widget-contact .textwidget').slideToggle(); 
    $mores.not($more).slideUp();  
    }); 
}); 

누군가이 방법을 알려 줄 수 있습니까?

가능합니까?

많은 감사!

답변

0

변수 이름은 같습니다. 이 고유 한 이름을 사용하면 작동합니다. 이 코드를 사용해보십시오. 일반적인 기능을 추출하여

jQuery(document).ready(function($) { 

    var $mores = $('#widget-about .textwidget').hide(); 
    var $titles = $('#widget-about a').click(function() { 
    var $more = $(this).next('#widget-about .textwidget').slideToggle(); 
    $mores.not($more).slideUp();  
    }); 



var $mores_contact = $('#widget-contact .textwidget').hide(); 
var $titles_contact = $('#widget-contact a').click(function() { 
var $mores_contact = $(this).next('#widget-contact .textwidget').slideToggle(); 
$mores_contact.not($mores_contact).slideUp();  
    }); 



}); 
+0

대단히 감사합니다. – MathCiet

0

시작하세요 :

function() { 
    var $more = $(this).next('#widget-about .textwidget').slideToggle(); 
    $mores.not($more).slideUp();  
} 

(나는 꽤 잘 아직 알고) 그런 다음 당신이 할 수 있습니다 :

정렬 밖으로
var myhandler = function() { 
    var $more = $(this).next('#widget-about .textwidget').slideToggle(); 
    $mores.not($more).slideUp();  
}; 
var $mores = $('#widget-about .textwidget').hide(); 
$('#widget-about a').click(myhandler); 
var $mores = $('#widget-contact .textwidget').hide(); 
$('#widget-contact a').click(myhandler); 

내부 참조의를 내 핸드 :

var myhandler = function(selector, $mores) { 
    var $more = $(this).next(selector).slideToggle(); 
    $mores.not($more).slideUp(); 
}; 

그리고 오른쪽 함수를 호출하십시오 :

var selector, $mores; 

selector = '#widget-about .textwidget', 
$mores = $(selector).hide(); 
$('#widget-about a').click((function() { myhandler(selector, $mores); })); 

selector = '#widget-contact .textwidget'; 
$mores = $(selector).hide(); 
$('#widget-contact a').click((function() { myhandler(selector, $mores); })); 

... 적어도 그렇게 생각합니다! :-)

관련 문제