【发布时间】:2023-03-23 23:54:01
【问题描述】:
我有一个按钮,当我点击它时我想显示另外两个按钮取消和确认。
当添加o 类时,会添加一个负边距并且按钮会消失。
$('.a_bttn_inner_action').click(function() {
if ($(this).children().find('.button')) {
$(this).parent().find('.button').queue(function(next) {
$(this).addClass('o');
next();
});
$(this).parent().find('.confirm.yes').delay(300).queue(function(next) {
$(this).removeClass('o');
next();
});
$(this).parent().find('.confirm.no').delay(100).queue(function(next) {
$(this).removeClass('o');
next();
});
} else if ($(this).children().find('.confirm.no')) {
$(this).parent().find('.confirm.yes').delay(300).queue(function(next) {
$(this).addClass('o');
next();
});
$(this).parent().find('.confirm.no').delay(100).queue(function(next) {
$(this).addClass('o');
next();
});
$(this).parent().find('.button').queue(function(next) {
$(this).removeClass('o');
next();
});
}
});
li.o {
margin-left: -800px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="bttn_inner_action">
<ul class="action">
<a href="#" class="a_bttn_inner_action">
<li class="button ">Do something...</li>
</a>
<a href="#" class="a_bttn_inner_action">
<li class="confirm no o">Cancel!</li>
</a>
<a href="#" class="a_bttn_inner_action">
<li class="confirm yes o">Confirm...</li>
</a>
</ul>
</div>
使用 jQuery 我在if($(this).children().find('.button')) 和else if($(this).children().find('.confirm.no')) 遇到问题。
我想检测当前元素的哪些子元素被li 元素的类选中。
这可能吗?
我试过if($(this).children().attr('class') == 'button')还是不行。
【问题讨论】:
-
请注意,您的 html 语法无效,LI 应该是 UL 的直接子级。虽然各种浏览器现在可能允许它,和/或在运行时进行纠错以修复它,但它可能会在以后导致问题。例如,在纠错期间,浏览器有时会更改元素,因此它们可能处于您不期望的层次结构中。
标签: javascript jquery