- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 fiddle 来演示我的问题:http://jsfiddle.net/motocomdigital/QyhpX/5/
概述
我正在使用 jQuery .animate
功能创建一个选项卡式网站。在我的实时网站上,第一次交替时似乎出现了问题,但我似乎无法在 fiddle 中复制它。
左侧选项卡将 div#wrapper
右侧定位设置为 -170px,然后返回到 0 - 然后我将 .removeAttr('style');
添加到删除样式属性,这样它就不会干扰右侧选项卡。
右侧选项卡将 div#wrapper
左侧定位设置为 -170px,然后返回到 0 - 然后我将 .removeAttr('style');
添加到删除样式属性,使其不会干扰左侧选项卡。
问题
.removeAttr('style');
在 .animate
完成后不会删除内联样式属性,这会导致我的左侧选项卡无法正常工作,如果右侧选项卡已开通。
请参阅jsfiddle http://jsfiddle.net/motocomdigital/QyhpX/5/
还有人注意到第一个选项卡打开交替时有任何故障吗?左还是右?它似乎在第一次打开时卡住,然后突然打开,但关闭得很好,然后顺利地重新打开。这只是第一次点击打开。
TAB 代码脚本
var $tabLeft = $(".tab-left-button span"),
$tabRight = $(".tab-right-button span"),
$siteSlide = $("#wrapper");
$tabLeft.on('click', function () {
if ($tabLeft.html() == 'X' ) {
$siteSlide.stop().animate({ right: "0" }, 300);
$tabLeft.html('Tab Left');
return false;
$siteSlide.removeAttr('style');
} else {
$siteSlide.stop().animate({ right: "-170px" }, 300);
$tabLeft.html('X');
$('body,html').animate({
scrollTop: 0
}, 800);
}
});
$tabRight.on('click', function () {
if ($tabRight.html() == 'X' ) {
$siteSlide.stop().animate({ left: "0" }, 300);
$tabRight.html('Tab Right');
return false;
$siteSlide.removeAttr('style');
} else {
$siteSlide.stop().animate({ left: "-170px" }, 300);
$tabRight.html('X');
$('body,html').animate({
scrollTop: 0
}, 800);
}
});
任何帮助将不胜感激。谢谢
最佳答案
正如 @JamesMcLaughlin 正确提到的,在 .removeAttr
调用之前有一个 return
语句。这就是我们所说的“无法访问的代码”。
但是,即使您切换这些语句,它仍然无法工作,因为 .animate()
是异步工作的。这意味着,一旦动画完全完成,您需要调用 .removeAttr
,如下所示:
$siteSlide.stop().animate({ right: "0" }, 300, function _afterAnimation() {
$siteSlide.removeAttr('style');
});
关于jQuery - 为什么属性没有被删除? .removeAttr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821554/
我正在尝试在加载页面以覆盖内联 css 时实现 removeAttr。它部分有效,但并非适用于所有情况。 这是一个演示问题的 JSfiddle https://jsfiddle.net/argilmo
情况 我正在开发一个有多个选项卡的程序。但是,用户无法转到另一个选项卡,除非他们保存并返回 ID。因此,在我的 document.ready 上,我有以下代码,应该从选项卡中删除选项卡属性。
我有下面这段代码: p { cursor: pointer; font-size: 1.2em; } .selected { color:red; }
我创建了一个 fiddle 来演示我的问题:http://jsfiddle.net/motocomdigital/QyhpX/5/ 概述 我正在使用 jQuery .animate 功能创建一个选项卡
我正在为我当前的项目使用 zepto.js,它具有与 jquery 相同的 removeAttr() 方法。 我正在将 margin-top 应用于一堆元素 – 工作正常。 var $apply =
我有一个固定的菜单贴在顶部。当我从顶部开始向下滚动页面 1px 时,我的固定菜单将改变样式。但是当我使网站响应并调整窗口大小时,最近添加的样式并没有消失(在第一次向下滚动并返回之后)。 希望这有点清楚
我已将removeAttrs设置为true,我想删除所有填充和颜色: { loader: 'svgo-loader', options: { plugins: [
我有多个 removeAttr() 有什么方法可以组合它们吗? 我有什么:(这有效) checkboxes.removeAttr("checked",'checked'); checkboxes.re
我有一个复选框列表,我希望人们能够单独勾选这些复选框,或者批量勾选/取消勾选以便于使用。 Category 批量勾选/取消勾选按钮的标记是: Tick All Un-Tick Al
获得了粘性 header 的以下代码: $(function () { var navOffset = $(".topnav").offset().top; $
我有这个网站:http://thc-cup.ucoz.com/为了使登录表单出现(通过按登录按钮),我必须删除默认隐藏且我无法控制的 div 样式。我使用了这段代码: $("#baseLogForm"
我正在使用 jquery-1.7.2.min.js 我遇到类型错误: $("#TextBox1").removeattr is not a function [Break On This Error]
我正在尝试从链接中删除标题属性并将其重新用于工具提示,这是给我带来麻烦的代码片段: $('.location').each(function() { var $this = $(this);
我有一个多选表单。 我正在通过 jQuery 执行以下操作来“取消选择”所有选项。 $('#select').find('option').attr('selected', false); 以编程方式
我想做的是当 $('input:radio[name="NeverWornRespbefore"]') 被选中时,我想从 radio 组 中删除所需的属性$('input:radio[name="ey
我正在努力使用 jquery 中的 removeAttr('class') 和 removeClass() 函数。 removeAttr('class') OR removeClass(); 我有三个
我有两个运行正常的 setTimeout 函数,但我的 removeAttr 函数没有触发。我不知道这是为什么。 编辑:实际目标是在鼠标进入时将 feGaussianBlur 的变量“stdDevia
我有一个使用 JQuery 和 JQuery UI 的网站。 对于某些链接,我不想使用 JQuery UI 主题的颜色,所以我使用自己的 css 进行了覆盖。 一切正常,直到我使用 $("#a_abo
这是我的 Cypress 代码: cy.get(`${sitestovisit.searchBoxFormID} > form`) .should('have.attr', 'target')
我想使用 Jquery 从类中删除文本对齐属性 例如: CSS .main{ text-align:left; padding:10px;} HTML。 使用 xyz id,如何删除 text
我是一名优秀的程序员,十分优秀!