- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用 Jquery 下拉列表单击功能时遇到问题。 addClass 运行良好但 removeClass 不行。我的问题是当我点击下拉列表时,这个下拉列表没有隐藏。
这是现场演示:http://jsfiddle.net/wcbaxkdv/
这是我的代码:
HTML:
<div id="dd" class="wrapper-dropdown-3" tabindex="-1">
<span>WHERE DO YOU WANT TO GO?</span>
<ul class="dropdown">
<li><a href="#">WHERE DO YOU WANT TO GO?</a></li>
<li><a href="#">addClass OK</a></li>
<li><a href="#">WHERE DO YOU WANT TO GO?</a></li>
<li><a href="#">removeClass Problem</a></li>
<li><a href="#">WHERE DO YOU WANT TO GO?</a></li>
<li><a href="#">WHERE DO YOU WANT TO GO?</a></li>
</ul>
</div>
CSS:
.wrapper-dropdown-3 {
background: none repeat scroll 0 0 #f0f1f1;
border: medium none;
border-radius: 0;
box-shadow: 0 1px 1px rgba(50, 50, 50, 0.1);
color: #8aa8bd;
cursor: pointer;
font-family: 'Archer-Book';
font-size: 13px;
font-weight: normal;
height: 45px;
margin-left: 25px;
margin-top: 25px;
outline: medium none;
padding-left: 10px;
padding-top: 15px;
position: relative;
vertical-align: middle;
width: 87%;
}
.wrapper-dropdown-3:after {
border-color: #ef4156 transparent;
border-style: solid;
border-width: 6px 6px 0;
content: "";
height: 0;
margin-top: -3px;
position: absolute;
right: 15px;
top: 50%;
width: 0;
}
.wrapper-dropdown-3 .dropdown {
background: none repeat scroll 0 0 #f1f1f2;
border: 1px solid rgba(0, 0, 0, 0.17);
border-radius: inherit;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.1);
font-weight: normal;
left: 0;
list-style: none outside none;
opacity: 0;
pointer-events: none;
position: absolute;
right: 0;
top: 140%;
transition: all 0.5s ease-in 0s;
z-index: 10;
}
.wrapper-dropdown-3 .dropdown:after {
border-color: #f1f1f2 transparent;
border-style: solid;
border-width: 0 6px 6px;
bottom: 100%;
content: "";
height: 0;
position: absolute;
right: 15px;
width: 0;
}
.wrapper-dropdown-3 .dropdown:before {
content: "";
width: 0;
height: 0;
position: absolute;
bottom: 100%;
right: 13px;
border-width: 0 8px 8px 8px;
border-style: solid;
border-color: rgba(0,0,0,0.1) transparent;
}
.wrapper-dropdown-3 .dropdown li a {
display: block;
padding: 10px;
text-decoration: none;
color: #8aa8bd;
border-bottom: 1px solid #e6e8ea;
box-shadow: inset 0 1px 0 rgba(255,255,255,1);
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.wrapper-dropdown-3 .dropdown li i {
float: right;
color: inherit;
}
.wrapper-dropdown-3 .dropdown li:first-of-type a {
border-radius: 7px 7px 0 0;
}
.wrapper-dropdown-3 .dropdown li:last-of-type a {
border: none;
border-radius: 0 0 7px 7px;
}
/* Hover state */
.wrapper-dropdown-3 .dropdown li:hover a {
background: #f3f8f8;
}
/* Active state */
.wrapper-dropdown-3.active .dropdown {
opacity: 1;
pointer-events: auto;
}
/* No CSS3 support */
.no-opacity .wrapper-dropdown-3 .dropdown,
.no-pointerevents .wrapper-dropdown-3 .dropdown {
display: none;
opacity: 1; /* If opacity support but no pointer-events support */
pointer-events: auto; /* If pointer-events support but no pointer-events support */
}
.no-opacity .wrapper-dropdown-3.active .dropdown,
.no-pointerevents .wrapper-dropdown-3.active .dropdown {
display: block;
}
Js:
function DropDown(el) {
this.dd = el;
this.placeholder = this.dd.children('span');
this.opts = this.dd.find('ul.dropdown > li');
this.val = '';
this.index = -1;
this.initEvents();
}
DropDown.prototype = {
initEvents : function() {
var obj = this;
obj.dd.on('click', function(event){
$(this).addClass('active');
return false;
});
obj.opts.on('click',function(){
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
});
},
getValue : function() {
return this.val;
},
getIndex : function() {
return this.index;
}
}
$(function() {
var dd = new DropDown( $('#dd') );
$('.wrapper-dropdown-3 .dropdown li a').on('click', function() {
// all dropdowns
$('.wrapper-dropdown-3').removeClass('active');
});
});
Js
最佳答案
您需要阻止事件从内部链接元素 a
冒泡到 div.wrapper-dropdown-3
,否则它会在隐藏后再次显示下拉列表:
obj.opts.on('click', function (e) {
var opt = $(this);
obj.val = opt.text();
obj.index = opt.index();
obj.placeholder.text(obj.val);
e.stopPropagation(); // <---- add this line
});
关于javascript - 下拉列表 removeClass 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849603/
siblings('.xx')有没有错误?单击时不想重复图像抱歉,我的英语太差了:( $(document).ready(function() { //$(".ok").removeClass("
我有一个具有以下样式的段落: .design_info_box p.design_info_desc { height:30px; text-overflow: ellipsis;
我现在正在执行以下操作,效果很好: $('#picker a').removeClass('selected'); 地点: Stuff Stuff Stuff Stuff 我如何更新 j
我有一个带有一些类的 div,我使用 Jquery 添加了一些 css $('.myClass').css("position","absolute"); 经过几个步骤后,我使用 myClass 删除
我正在尝试在类上启用事件监听器,但它不起作用 DOM 元素: Shop 这是 Javascript 事件监听器: 函数完成后,它会删除 .shopping,因此事件不再触发。 $('.shoppi
var increment = 0; $("#dial-save").click(function(){ $(".add-flow").html(""); $(".add-flow").append(
感谢这里的所有贡献者和 w3schools,我终于成功了。 我有 2 个菜单 - Term 和 PayTerm。 Term 始终高于 PayTerm。默认的 disabled 状态是完美的。当我点击
(function removeAnimation() { var $window = $(window), $html = $('html'); if ($window.wi
这个问题已经有答案了: How to remove CSS Class with Tampermonkey? (3 个回答) 已关闭 4 年前。 我正在尝试删除 hide来自单个div的类使用 Vio
removeClass 不会从下面的 js 中的 div.upvote 中删除类 selected,但 addClass() 可以正常工作。这是为什么? $(document).ready(funct
我正在创建一个 Accordion ,它具有过滤搜索和字母分页功能。 Accordion 由折叠的卡片组成。当用户在搜索框中键入内容时,我希望卡片打开.removeClass('collapsed')
示例代码和示例为here . $("#menus > li > ul > li > a").click(function(){ $(this).toggleClass("selected").
我的 ajax 表单提交运行良好,但我想添加一个“成功”类,以向用户指示当用户选中或取消选中某个框时请求已完成。到目前为止我已经尝试了一些方法: $(".box").change(functi
我有一些元素,例如 A 类 test 然后我尝试从元素中删除该类: $('.A').removeClass('.A'); 但它似乎不起作用,如果我只知道这个元素的一个类,如何让它起作用? 最佳答案 您
当我直接指定它时(即“ratingBlock”、“ratingBlock1”、“ratingBlock2”等),此代码片段可在添加新类之前删除现有类。但是当我在removeClass('[class
如果您单击任一图像,每个图像都会出现一个独特的模态。 我使用了一个功能,可以在您点击离开时隐藏苹果模式。 如果我单击任何 .alt-btn,如何保持苹果模式显示? $(document).on("cl
我需要你的帮助。 我无法从未选择的图像中删除事件链接。 代码如下: $(function(){ $(document).ready(function() { $(".Nav_t
我正在尝试制作自动幻灯片,但此消息不断弹出,我不明白为什么。 HTML: 'show' 和 'hide' 类分别将显示设置
我有一个 jssor 画廊,我通过添加 CSS 类“blur”对其进行了模糊处理。当用户点击 div 时,我想“取消模糊”这个画廊。为此,我添加了这个简单的 JS 代码: jQuery(doc
我可以将下面的代码重写为不那么重复的代码吗? $("#iTUNES").click(function() { createLastEdition(26); $("#Beatpo
我是一名优秀的程序员,十分优秀!