javascript - 将 (this) 与动态内容一起使用 jQuery

标签 javascript jquery

我无法理解使用 jQuery 添加动态内容。我的代码会将项目添加到列表中,当您单击该列表上的项目时,该项目的内容应该可见。目前,当我单击某个项目时,会显示所有项目的内容。我尝试添加(这个),但这不起作用。

$(document).ready(function() {
var hidden = true;

$("#add").click(function() {
    var item = $("#name").val();
    var date = $("#date").val();

    if(item == "") {
        return false;
    }

    var prependItem =
    "<li class='new'>"+
        "<button class='btn btn-default' id='check'></button>"+
        "<span class='item'>&nbsp;"+item+"</span>"+
        "<ul class='sub'>"+
            "<li>"+
                "Due date: 5/3/2015"+
            "</li>"+
        "</ul>"+
    "</li>";

    $(".todo").prepend(prependItem);
    $(".sub").hide();
    $(".form")[0].reset();

    return false;
});

// show sub content
$(".todo").on("click", ".item", function() {
    if(hidden == true) {
        $(".sub").show();
        hidden = false;
    }
    else {
        $(".sub").hide();
        hidden = true;
    }
});

$(".todo").on("click", "#check", function() {
    // line through
})                                      
});

最佳答案

.sub 元素是 .item 的同级元素,因此也可以使用 this 来获取对该元素的引用引发事件,您需要使用 siblings('.sub')。您还可以使用 toggle() 来简化代码。试试这个:

$(".todo").on("click", ".item", function() {
    $(this).siblings(".sub").toggle();
});

关于javascript - 将 (this) 与动态内容一起使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28851949/

相关文章:

javascript - 使用 Kentico Kontent 时,对象数组未按照 CMS 中设置的顺序渲染

jquery - jsTree 将子节点从一棵树移动到另一棵树

如果选中复选框,jquery 将禁用下一个元素

javascript - 按字典值的字母顺序对 JSON 字典进行排序

javascript - 在 fullcalendar eventDrop 中获取完整日期

javascript - Visualforce:未捕获类型错误:无法读取未定义的属性 'tid'

javascript - javascript中循环对象的问题

javascript - Discord 在角色仍然可用时显示@deleted-role

javascript - 关于我悬停位置的工具提示

jquery - 为什么使用 jQuery 来获取 CSS 资源?