jQuery:隐藏类,以便隐藏该类随后创建的元素
jQuery: hide class such that subsequently created elements of that class are hidden
我一直在使用标准方法来隐藏/显示一个类,即:
$('.myClass').show(); // or .hide() or .toggle()
但是,如果myClass
被隐藏,并且创建了类的新元素,它是可见的,因为.hide()
没有影响它。为了解决这个问题,如果在创建时隐藏了类,我会隐藏新创建的元素。
但是,有没有一种方法可以隐藏类,使其自动应用于随后创建的元素?
我想到的是模式:$('#container').on('click', '.myClass', function () {...
,它将处理程序附加到稍后创建的元素。从本质上讲,我想用display属性来模拟这一点。
我认为您最好的选择可能是向#container
添加一个类,类似于以下内容:
#container .myClass {
display: none;
}
#container.with-whatevers .myClass {
display: block;
}
$( '#container' ).on( 'click', '.myClass', function () {
$( "#container" ).toggleClass( "with-whatevers" );
} );
我不确定你切换.myClass
元素可见性的确切机制是什么——显然,如果它们是隐藏的,你就不能点击其中一个来切换它们的可见性
我想到的模式是:$('#container').on('click','.myClass',function(){…它将处理程序附加到稍后创建的元素。
这实际上并没有将处理程序附加到稍后创建的元素。它将其连接到#container
。然后,其子代上的任何单击事件都将弹出,如果目标元素与传递给on()
的选择器匹配,则将运行处理程序。
实际上,这里有一个绑定到DOMNodeInserted
事件的例子,在大多数较新的浏览器中,每当元素插入DOM时,就会触发该事件:
$(document).on('DOMNodeInserted', function(e) {//whenever an element is inserted
if ($(e.target).is('.myClass')) { //check if it has the right class
$(e.target).hide(); //and hide it if it does
}
});
它在IE中不起作用,因为没有支持,我似乎记得见过一些变通方法,所以可能会使它跨浏览器。
下面是一个快速的演示
.myClass
的CSS中应该有display:none
。然后,只要你需要,就拨打.show()
。
示例:http://jsfiddle.net/imsky/5J5Tt/
添加点击事件之前隐藏
$('.myClass').hide();
然后使用jQuery的.on()或.delete()方法
$('#container').on('click', '.myClass', function(){
$(this).toggle();
}
- 为各种模型动态创建隐藏的表单字段(MVC 4)
- 如何在Javascript中创建一个真正隐藏的变量
- 使用C#将在JavaScript中创建的变量值传递给ASP.Net中的服务器端(代码隐藏)
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- jQuery:隐藏类,以便隐藏该类随后创建的元素
- 在javascript上创建,以处理单击后要隐藏的几个单选按钮
- 为选中的每个复选框创建隐藏输入
- 使用运行时创建的链接来触发ASP.Net中隐藏按钮的单击处理程序
- Js/jQuery-如何隐藏/显示动态创建的输入
- 如何创建隐藏'payment_method_nonce'由brainstree.js输入
- 使用javascript创建自己的隐藏类方法
- jQuery/JS-隐藏特定的动态创建的元素/按钮
- 使用 css 隐藏 vs JS 创建元素 vs ajax
- 访问代码隐藏中动态创建的隐藏字段值
- 如何隐藏由angularjs ng-repeat创建的文本框
- 访问代码隐藏中动态创建的 html 复选框
- 创建新标签页时隐藏Chrome扩展程序页面的网址
- 流星 - 创建一个复选框,用于隐藏会话中已完成的决议
- 如何从javascript调用会话,这是使用c#的代码隐藏创建的
- 如何在特定对象的树视图中隐藏“创建”按钮.因为这个对象的所有字段都是只读的