javascript - 单击事件 UI 按钮 jQuery

标签 javascript jquery

我正在建立一个简单的购物 list 。目前,当您单击列表项本身的任意位置时,我的代码将删除添加的列表项,我希望它能够工作,单击它旁边的 UI 按钮将从列表中删除整个项目,我尝试过的只会删除UI 按钮本身。感谢您的帮助,我是个新手

HTML

<div id="list">
    <ul class="shopping"></ul>
</div>

jQuery

$(document).ready(function () {
function addItemToList(e) {
    var addItem = $('#item').val();
    $('.shopping').append('<li>' + '<button class="uibutton"></button>' + addItem + '</li>');
    $('.uibutton').button({
        icons: {
            primary: "ui-icon-heart"
        },
        text: false
    });
    $('ul').on('click', 'li', function() {
    $(this).remove();
});
    $('#item').val('');
}

/*adds list item to list when cart icon is clicked, clears #item input field*/
$('#toadd').click(function (e) {
    addItemToList(e);
});

/*adds list item to list when enter key is hit, clears #item input field*/
$('#item').keydown(function (e) {
    if (e.which == 13) {
        addItemToList(e);
    }
});

});

最佳答案

您可以进行 2 项更改,例如

$(document).ready(function () {
    function addItemToList(e) {
        var addItem = $('#item').val();
        var $li = $('<li>' + '<button class="uibutton"></button>' + addItem + '</li>').appendTo('.shopping');

        //target only newly added button
        $li.find('.uibutton').button({
            icons: {
                primary: "ui-icon-heart"
            },
            text: false
        });
        $('#item').val('');
    }

    //use event delegation instead of adding the handler in another event handler... 
    $('ul.shopping').on('click', '.uibutton', function () {
        $(this).closest('li').remove();
    });

    /*adds list item to list when cart icon is clicked, clears #item input field*/
    $('#toadd').click(function (e) {
        addItemToList(e);
    });

    /*adds list item to list when enter key is hit, clears #item input field*/
    $('#item').keydown(function (e) {
        if (e.which == 13) {
            addItemToList(e);
        }
    });
});

演示:Fiddle

关于javascript - 单击事件 UI 按钮 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25695842/

相关文章:

javascript - 让 webpack 包含 html 文件

javascript - NodeJS 中变量未读取值

javascript - Jquery 将元素放入另一个元素之后

javascript - 在开始一个会自行循环的函数之前延迟 6 秒,这个函数很小,不起作用,为什么?

javascript - 如何通过 JavaScript 在 anchor 标记中导航 href

jQuery.click() :active

javascript - Jquery 表单创建未在 IE 中提交

javascript - 按钮 onclick 事件不起作用

javascript - 使用 jQuery 悬停时的淡入和淡出效果

javascript - append() 函数在网页中不起作用