jQuery显示/隐藏动态元素
jQuery to show/hide dynamic elements
当我点击h3
标签时,我想隐藏/显示ul
元素。我试了一些例子,也许我错过了一些东西。
$('#gallery').append('<h3 id="' + idx + '" >' + item.title._content + '</h3><ul style="display:none;" class="photos grp' + idx + '"></ul>');
$('h3#'+idx).click(function () {
$(this).next('.photos.grp'+idx).toggle();
});
将处理程序附加到一个或多个事件上,用于匹配的所有元素选择器,现在或将来,基于一组特定的根
元素。
.delegate( selector, eventType, handler )
// jQuery 1.4.3+
$( elements ).delegate( selector, events, data, handler );
// jQuery 1.7+
$( elements ).on( events, selector, data, handler );
你可以使用jQuery委托事件处理程序,它可以用于你的动态添加元素。
。
$('#gallery').append('<h3 id="' + idx + '" >' + item.title._content + '</h3><ul style="display:none;" class="photos grp' + idx + '"></ul>');
$('h3#'+idx).on('click', function() {
$(this).next('.photos.grp'+idx).toggle();
});
或
$('h3#'+idx).delegate('#gallery', 'click', function() {
$(this).next('.photos.grp'+idx).toggle();
});
这里,#gallery是所有子元素的父元素。
因为你是动态的你应该使用这个
var id = 'h3#'+idx;
$('#gallery').on('click',id,function(){
$(this).next('.photos.grp'+idx).toggle();
})
试试这个:
$('h3#'+idx).on('click',function () {
$(this).next('.photos.grp'+idx).toggle();
});
Because you are appending html from jquery then use `.on()` shown above.
相关文章:
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作
- 将动态元素绑定到函数;只剩下一个绑定
- 关于动态元素中循环中的事件
- 对动态元素使用.on()和e.stopPropagation()
- 只删除javascript中的1个动态元素
- 删除在加载dom之后创建的动态元素
- 从服务器和/或客户端加载动态元素的典型技术是什么
- IE7/8中的jQuery动态元素错误
- Jquery动态元素选择器
- AnguarJS$编译的动态元素
- 使用jQuery使动态元素可选择
- jquery在动态元素上调用日期选择器
- 如果在transclusion之后添加,为什么指令下的动态元素具有错误的作用域
- 如何使用jQuery唯一地识别具有相同id的类似动态元素
- 将单击处理程序绑定到动态元素
- 为动态元素附加事件处理程序
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- jQuery中的目标动态元素
- 将动态元素/行添加到 Angularjs 中的多维 Json 数组中
- Jquery 单击函数不适用于动态元素