我想在点击ul
标记时隐藏/显示h3
元素。我尝试了一些例子,也许我错过了一些东西。
我的示例代码:
$('#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();
});
答案 0 :(得分:1)
为所有匹配的元素附加处理程序到一个或多个事件 选择器,现在或将来,基于一组特定的根 元件。
.delegate( selector, eventType, handler )
// jQuery 1.4.3+
$( elements ).delegate( selector, events, data, handler );
// jQuery 1.7+
$( elements ).on( events, selector, data, handler );
您可以使用jQuery委托事件处理程序,该处理程序可用于动态添加的元素。
e.g。在你的情况下
$('#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 是所有子元素的Parent元素。
答案 1 :(得分:0)
因为你是动态的你应该使用这个
var id = 'h3#'+idx;
$('#gallery').on('click',id,function(){
$(this).next('.photos.grp'+idx).toggle();
})
答案 2 :(得分:0)
试试这个:
$('h3#'+idx).on('click',function () {
$(this).next('.photos.grp'+idx).toggle();
});
Because you are appending html from jquery then use `.on()` shown above.