我使用以下代码使用js
打开和关闭div(向上/向下滑动)我将滑动事件附加到按钮上,并且向上滑动事件以关闭文本。
我想要的是打开按钮并再次点击关闭滑动元素。
这是JS
// slide down effect
$(function(){
$('.grabPromo').click(function(){
var parent = $(this).parents('.promo');
$(parent).find('.slideDown').slideDown();
});
$('.closeSlide').click(function(){
var parent = $(this).parents('.promo');
$(parent).find('.slideDown').slideUp();
});
});
HTML:
<span class="grabPromo">Open</span>
在滑下区域我有
<a class="closeSlide">Close</a>
任何帮助表示感谢。
理想情况下,我想在向下滑动按钮上使用向下箭头,向上指向箭头以替换它以在同一按钮上向上滑动。并完全取消关闭链接。
任何帮助表示赞赏。干杯
答案 0 :(得分:12)
您可以在点击功能中使用slideToggle()
:
$('.grabPromo').click(function(e){
$('.slideDown').slideToggle();
});
答案 1 :(得分:10)
试试这个。它允许多个项目,因此不是ID特定的。并支持通过AJAX加载的任何内容。 jsfiddle is here
<div class='toggle_parent'>
<div class='toggleHolder'>
<span class='toggler'>Open</span>
<span class-'toggler' style='display:none;'>Close</span>
</div>
<div class='toggled_content' style='display:none;'>
My Content
</div>
</div>
和
$('.toggler').live('click',function(){
$(this).parent().children().toggle(); //swaps the display:none between the two spans
$(this).parent().parent().find('.toggled_content').slideToggle(); //swap the display of the main content with slide action
});
答案 2 :(得分:6)
<div id="content">
bla bla bla bla bla bla bla bla blabla bla blabla bla bla
</div>
<input type="button" id="myButton" value="Slide down ↓"/>
$("#myButton").toggle(function(){
$("#content").slideDown();
$(this).val("Slide up ↑");
},function(){
$("#content").slideUp();
$(this).val("Slide down ↓")
});
答案 3 :(得分:0)
HTML:
<div class='parent_row'>
<span class='toggler_row'>click here</span>
<div class='child_row' style='display:none;'>
Row 1
</div>
<div class='child_row' style='display:none;'>
Row 2
</div>
<div class='child_row' style='display:none;'>
Row 3
</div>
</div>
JS/Jquery :
$('.toggler_row').live('click',function(){
$(this).parent().parent().find('.child_row').slideToggle();
});
jQuery .live() 已从 1.9 版开始删除,如果它被破坏,请尝试下面的脚本,它会起作用。
$('body').on('click', '.toggler_row',function(){
$(this).parent().parent().find('.child_row').slideToggle();
});