jQuery在父li中单击div时显示嵌套ul
我试图在单击其父li中的一个div时显示一个隐藏的嵌套ul,我对它非常满意。就这样,嵌套ul的初始隐藏工作正常,div背景图像切换正常,但其他一切都不起作用。有什么建议吗 当前代码如下: HTML: jQuery:jQuery在父li中单击div时显示嵌套ul,jquery,nested-lists,Jquery,Nested Lists,我试图在单击其父li中的一个div时显示一个隐藏的嵌套ul,我对它非常满意。就这样,嵌套ul的初始隐藏工作正常,div背景图像切换正常,但其他一切都不起作用。有什么建议吗 当前代码如下: HTML: jQuery: $(document).ready(function(){ $('.subField').hide(); $('.buttonShow').click(function() { $(this).toggleClass('buttonHide');
$(document).ready(function(){
$('.subField').hide();
$('.buttonShow').click(function() {
$(this).toggleClass('buttonHide');
$(this).parent().next('.subField').show('slow');
});
$('.buttonHide').click(function() {
$(this).parent().next('.subField').hide('slow');
});
});
非常感谢 试试看
$(document).ready(function () {
$('.subField').hide();
//use event delegation since classes are changed dynamically
$('#branches').on('click', '.buttonShow', function () {
//remove the show class and assign hidden
$(this).toggleClass('buttonHide buttonShow');
//the subfield is a child of the parent not the next sibling
$(this).siblings('.subField').show('slow');
});
$('#branches').on('click', '.buttonHide', function () {
$(this).toggleClass('buttonHide buttonShow');
$(this).siblings('.subField').hide('slow');
});
});
演示:试试看
$(document).ready(function(){
$('.subField').hide();
$('.browseFields').on("click" , ".buttonShow" , function() {
$(this).removeClass('buttonShow').addClass("buttonHide");
$(this).parent().find('.subField').show('slow');
});
$('.browseFields').on("click" , ".buttonHide" , function() {
$(this).removeClass('buttonHide').addClass("buttonShow");
$(this).parent().find('.subField').hide('slow');
});
});
您还可以尝试合并单击处理程序
$(document).ready(function () {
$('.subField').hide();
//use event delegation since classes are changed dynamically
$('#branches').on('click', '.buttonShow, .buttonHide', function () {
$(this).hasClass('buttonShow') ? $(this).siblings('.subField').show('slow') : $(this).siblings('.subField').hide('slow');
$(this).toggleClass('buttonHide buttonShow');
});
});
我在这里创作了一把小提琴。请查收 我在jQuery中做了一些更改。我还对你的html做了一些修改。 我已经在div中放置了锚定标记
$(document).ready(function(){
$('.subField').hide();
$(document).on("click",".buttonShow",function(e) {
$(this).addClass('buttonHide');
$(this).removeClass('buttonShow');
$(this).closest('li').find('.subField').eq(0).show('slow');
});
$(document).on("click",".buttonHide",function(e) {
debugger
$(this).addClass('buttonShow');
$(this).removeClass('buttonHide');
$(this).closest('li').find('.subField').eq(0).hide('slow');
});
});
您在类
按钮侧切换,但该按钮仍然具有类按钮显示
对吗?因此,您将得到一个包含这两个类的按钮,我认为您需要在事件处理程序中执行任何操作之前检查这种可能性。谢谢你的帮助。也谢谢你的注释,帮助澄清了很多事情。
$(document).ready(function () {
$('.subField').hide();
//use event delegation since classes are changed dynamically
$('#branches').on('click', '.buttonShow, .buttonHide', function () {
$(this).hasClass('buttonShow') ? $(this).siblings('.subField').show('slow') : $(this).siblings('.subField').hide('slow');
$(this).toggleClass('buttonHide buttonShow');
});
});
$(document).ready(function(){
$('.subField').hide();
$(document).on("click",".buttonShow",function(e) {
$(this).addClass('buttonHide');
$(this).removeClass('buttonShow');
$(this).closest('li').find('.subField').eq(0).show('slow');
});
$(document).on("click",".buttonHide",function(e) {
debugger
$(this).addClass('buttonShow');
$(this).removeClass('buttonHide');
$(this).closest('li').find('.subField').eq(0).hide('slow');
});
});