更改类,但单击不识别新类
Change class but click not recognizing the new class
我有以下html:
<div class="showMap" id="mapVis" style="cursor:pointer">(Show map)</div>
<div id="map">hello world</div>
Div #map
被隐藏,如下所示(这样隐藏是有原因的,它保存着一个谷歌地图),然后我想点击(Show map)
,Div就会出现。这没关系。然后我更改#mapVis
div的类和html,并希望下一次单击隐藏#map
,但它没有。老实说,我不知道它在做什么,但它似乎忽略了新的类,并恢复到操作,就好像以前的类仍然附加到#mapVis
分区一样。
这是JQuery:
var map2 = $('#map');
map2.css('position','absolute').css('left','-9999em');
$('.showMap').click(function(){
map2.hide().css('position','relative').css('left','0em').slideDown();
$('#mapVis').removeClass('showMap').addClass('hideMap').html('(Hide map)');
});
$('.hideMap').click(function(){
map2.css('position','absolute').css('left','-9999em');
$('#mapVis').removeClass('hideMap').addClass('showMap').html('(Show map)');
});
这是一个小提琴
由于必须动态评估选择器,因此需要使用事件委派。
使用普通事件注册时,选择器仅在事件注册时进行评估,对元素所做的任何更改都不会反映在注册的处理程序中。
var map2 = $('#map');
map2.css('position', 'absolute').css('left', '-9999em');
$(document).on('click', '.showMap', function () {
console.log('hey2');
$('#map').hide().css('position', 'relative').css('left', '0em').slideDown();
$('#mapVis').removeClass('showMap').addClass('hideMap').html('(Hide map)');
});
$(document).on('click', '.hideMap', function () {
console.log('hey');
$('#map').hide();
$('#map').css('position', 'absolute').css('left', '-9999em');
$('#mapVis').removeClass('hideMap').addClass('showMap').html('(Show map)');
});
演示:Fiddle
jsfiddle:http://jsfiddle.net/7At32/
这是一个样品,但你可以根据你的要求修改
$('#mapVis').click(function () {
if ($(this).hasClass("showMap")) {
$('#map').show();
$(this).removeClass('showMap').addClass('hideMap').html('(Hide map)');
} else {
$('#map').hide();
$(this).removeClass('hideMap').addClass('showMap').html('(Show map)');
}
});
相关文章:
- 无法删除css类并添加新类
- 将新类实例中的数据存储在数组中
- 如何使用其他 JavaScript 文件中的新类访问我的 createjs 导出的 js 文件
- 更改类,但单击不识别新类
- Jquery类选择器无法选择用.append()添加的新类实例
- 希望在不创建新类的情况下将警告图标显示在正确的位置
- Backbone app:将参数传递给由javascript/Require模块创建的新类
- 如何定义扩展标准 JavaScript 类(如 Array)的新类
- 在新类 jQuery 上启用可拖动
- Javascript 不适用于 changeClass() 之后的新类项
- 在javascript中实例化一个新类时,不将其分配给变量有什么害处
- 使JQuery识别新添加的元素
- Javascript在body标记中添加新类
- 将Parse.com类复制到具有值转换的新类中
- jQuery,脚本没有't识别新添加的元素
- 在屏幕调整大小时为引导程序元素分配新类不起作用
- 在模块中创建新类的参数var名的正确方法是什么?
- 页面.EnableEventValidation = false不识别新的下拉列表值
- 删除/添加一个类,然后在这个新类上执行一个事件
- 一个错误事件添加一个新类并计算它替换图像源的次数