gpt4 book ai didi

使用wrapInner进行jQuery滑动,然后在完成后删除

转载 作者:行者123 更新时间:2023-12-01 01:24:30 24 4
gpt4 key购买 nike

在 jquery 中使用向上/向下滑动功能时,我遇到了 Firefox 错误 ( overflow property not implemented on fieldset )。

所以我想:

  1. 点击时通过 jquery 添加内部 div
  2. 向上/向下滑动此 div
  3. 删除内部div

这是我到目前为止所拥有的:

var $searchBtn = $form.find('.search-reveal');          
$searchBtn.click(function(e){
var $this = $(this),
$fieldset = $this.next();

$this.toggleClass('open');

// FIX Firefox bug - https://bugzilla.mozilla.org/show_bug.cgi?id=261037
var $fieldsetInner = $fieldset.children().eq(0)
if(!$fieldsetInner.is("div")){
$fieldsetInner = $fieldset.innerWrap("<div></div>");
}

if($this.hasClass('open')){
$fieldset.addClass('open');
$form.addClass('active');
$fieldsetInner.slideDown('fast', 'easeInQuad', function(){
// REMOVE Firefox bug fix
});
} else {
$fieldsetInner.slideUp('fast', 'easeOutQuad', function(){
$fieldset.removeClass('open');
$form.removeClass('active');
// REMOVE Firefox bug fix
});
}

e.preventDefault();
});

我已经尝试过this建议使用 display: table-column 修复,但这没有什么区别。

最佳答案

我编写了一个独立的 jQuery 函数来执行此操作:

$.fn.fieldsetSlideToggle = function (speed) {
var $this = $(this),
$inner = $this.children().eq(0),
display = $this.css('display'),
slideSpeed = speed ? speed : 'fast';

// 1. Check if first child of fieldset is <div>
// 2. Wrap contents in <div> if not
if (!$inner.is("div")) {
$inner = $('<div />').html($this.html());
$this.empty().append($inner);
}

// 3. SlideToggle on div
if (display == 'none') {
$this.show();
$inner.hide().slideDown(slideSpeed, function () {
$this.html($inner.html());
});
} else {
$inner.slideUp(slideSpeed, function () {
$this.html($inner.html()).hide();
});
}
}

fiddle :http://jsfiddle.net/tbDRu/6/ 。单击按钮可向上/向下滑动字段集。

关于使用wrapInner进行jQuery滑动,然后在完成后删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18046043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com