如何通过单击带有 slideDown/Up 的按钮将 load/unload 变成 html 到 div
How to load/unload an html to a div by clicking on a button with slideDown/Up
我正在处理 opens/closes 具有 jquery 的 toggle() 功能的大型菜单列表。
我希望菜单列表中的其中一项在单击时滑动并显示其下方 div 上另一个 .html 的 load() 内容,然后再次单击时,以slideUp并删除load()内容。
到目前为止我写的代码似乎可以工作,但是,在第二次点击之后,它似乎会 "crazy" 并且混淆了 slideDown 和 Up 的顺序并在循环中重复移动。
由于使用了 load() 方法,所以代码不能在这里运行,但是我把我正在使用的代码放在这里,所以你可以检查逻辑。
$(document).ready(function(){
$('.show-project-01').on('click', function(){
if ($('.project').html() == "") {
$('.project').slideDown()
$('.project').load('project-01.html')
} else {
$('.project').slideUp()
$('.project').empty()
}
return false
})
})
<a href="#" class="title-project show-project-01">Pure office <img src="assets/teste-01.jpg" alt="" class="image-01"></a>
<div class="project">
</div>
我是 jquery 的新手,所以我不太明白我做错了什么,欢迎任何建议。
谢谢!
您可以使用数据属性来确保容器 div 是打开还是关闭
var button = $('.show-project-01');
var container = $('.project');
// add data-open attribute of close
button.attr('data-open','close');
// on button click
button.on('click',function() {
// get data-open arrtibute
var open = $(this).data('open');
// if data-open is open
if(open != 'open'){
// update data-open to open
$(this).data('open','open');
container.load('project-01.html', function() {
container.slideDown();
});
} else {
container.slideUp();
// do you need to remove the html?
//container.empty()
// update data-open to close
$(this).data('open','close');
}
});
我正在处理 opens/closes 具有 jquery 的 toggle() 功能的大型菜单列表。 我希望菜单列表中的其中一项在单击时滑动并显示其下方 div 上另一个 .html 的 load() 内容,然后再次单击时,以slideUp并删除load()内容。
到目前为止我写的代码似乎可以工作,但是,在第二次点击之后,它似乎会 "crazy" 并且混淆了 slideDown 和 Up 的顺序并在循环中重复移动。
由于使用了 load() 方法,所以代码不能在这里运行,但是我把我正在使用的代码放在这里,所以你可以检查逻辑。
$(document).ready(function(){
$('.show-project-01').on('click', function(){
if ($('.project').html() == "") {
$('.project').slideDown()
$('.project').load('project-01.html')
} else {
$('.project').slideUp()
$('.project').empty()
}
return false
})
})
<a href="#" class="title-project show-project-01">Pure office <img src="assets/teste-01.jpg" alt="" class="image-01"></a>
<div class="project">
</div>
我是 jquery 的新手,所以我不太明白我做错了什么,欢迎任何建议。
谢谢!
您可以使用数据属性来确保容器 div 是打开还是关闭
var button = $('.show-project-01');
var container = $('.project');
// add data-open attribute of close
button.attr('data-open','close');
// on button click
button.on('click',function() {
// get data-open arrtibute
var open = $(this).data('open');
// if data-open is open
if(open != 'open'){
// update data-open to open
$(this).data('open','open');
container.load('project-01.html', function() {
container.slideDown();
});
} else {
container.slideUp();
// do you need to remove the html?
//container.empty()
// update data-open to close
$(this).data('open','close');
}
});