组合jquery的两个功能
我想把这两个功能结合起来,但我想不出来。对不起,正在学习中组合jquery的两个功能,jquery,toggle,slideup,Jquery,Toggle,Slideup,我想把这两个功能结合起来,但我想不出来。对不起,正在学习中 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()
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();
});
});
谁能告诉我怎么做
可能吗
非常感谢 您的变量名称相同。让这个唯一的名字,然后它就会工作。试试这个代码
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();
});
});
从提取公共函数开始:
function() {
var $more = $(this).next('#widget-about .textwidget').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); }));
我知道现在还不太对劲
然后你可以做:
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);
整理myhandler中的内部引用:
var myhandler = function(selector, $mores) {
var $more = $(this).next(selector).slideToggle();
$mores.not($more).slideUp();
};
然后调用正确的函数:
function() {
var $more = $(this).next('#widget-about .textwidget').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); }));
。。。至少我这么认为!
:-