作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我有两个按钮,当单击其中一个按钮时,它会滑出以显示更多信息。当单击一个按钮时,两个按钮都会滑出。我将第二个按钮类更改为button2和inner2,并将javascript加倍并将其中的类更改为button2和inner2,但这确实让事情变得很奇怪。
<a class="text button1 btn btn-primary btn-lg">Learn more<a class="link inner is-hidden btn btn-primary btn-lg" href="#">Movie Data</a><a class="link inner is-hidden btn btn-primary btn-lg" href="#">Full Trailer</a><a class="link inner is-hidden btn btn-primary btn-lg" href="#"More Reviews</a><a class="link inner is-hidden btn btn-primary btn-lg" href="#">Photos</a></a>
<小时/>
$('.button1').on('click', function() {
animateDiv();
})
$(document).keyup(function(e) {
if (e.keyCode === 27 && $('.inner').hasClass('visible')) {
animateDiv();
}
})
function animateDiv() {
$('.inner').toggleClass('visible');
$('.inner').animate({
width: 'toggle',
}, 0);
}
最佳答案
在animateDiv
中,您指的是.inner
,它将匹配两个按钮,或者至少将匹配该类的每个元素。除非您以某种方式指定它引用的是哪个外部按钮,否则它将不起作用。
尝试将按钮传递到您的函数中,然后确定其范围:
$('.button1').on('click', function() {
animateDiv($(this));
})
function animateDiv(button) {
$('.inner', button).toggleClass('visible');
$('.inner', button).animate({
width: 'toggle',
}, 0);
}
但是,您的其他代码仍然存在问题,因为它无法知道您在整个文档的按键上引用了哪个按钮。不让它同时执行这两项操作的唯一方法是将 keyup 的范围也限制在按钮上:
$('.button1').keyup(function(e) {
if (e.keyCode === 27 && $('.inner', $(this)).hasClass('visible')) {
animateDiv($(this));
}
})
实际上,我认为您的 HTML 格式不同。看起来很奇怪。还有按钮2吗?为什么.button1
里面有这么多.inner
?
我一开始以为您在 .button123
div 内有几例 .inner
div。很难判断何时全部都在一条线上。但现在想知道您的 HTML 是否被破坏或者您的问题中缺少某些内容?
关于javascript - 需要滑出按钮才能单独工作。当单击一个按钮时,两者都会执行任务。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732683/
我是一名优秀的程序员,十分优秀!