javascript - jQuery parent() 的解决方案

标签 javascript jquery html css twitter-bootstrap

请在此处查看我的代码 - https://jsfiddle.net/johndoe1994/xtu09zz9/

首先,我会告诉你它的功能

如您所见,有两个容器:.first.second。在 .first 中,默认情况下,我还有另外两个 div。它们都是.item。类 .second 默认为空。

如果将鼠标悬停在每个 .item 上,您会看到 Bootstrap 字形 - heart

如果您单击 .item,它会移动到 .second。之后,如果将 .item 悬停在 .second 上,heart glyphicon 将变为 minus sign

我觉得不错。但是 jQuery 代码有一个非常小的问题

在我的示例中,我单击所有 .item 容器并将此容器 clone() 到 .second(请查看我的 jQuery 代码)。但实际上,我只需要单击 glyphicon,然后它的 .item 容器将 clone().second

所以,换句话说,现在我有了第一行 - $(document).on('click', '.item', function() 但我需要像 $(document).on('click', '.glyphicon-heart', function() 这样的东西作为第一行

我可以用 parent() 做这个吗?或者其他 jQuery 方法(closest()has())?

请帮帮我

最佳答案

只需让 .gliphicon 可点击,然后选择 .item 并使用 $(this) jsfiddle updated 代替:

$(document).on('click', '.glyphicon', function() {

var item = $(this).closest(".item");

if(item.parent().attr("class") == "itemList") {
    item.clone().appendTo('.second');
    $(this).prop('disabled', true);
    item.css({"opacity": "0.2", "-webkit-user-select": "none"});
}
else { //NEW ELSE
    var i = $('.itemList').find('[data-state="' + item.data('state') + '"]');

        i.css({"opacity": "1", "-webkit-user-select": "true"});
        i.find(".glyphicon").prop('disabled', false);

    item.remove();
}


});

关于javascript - jQuery parent() 的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704424/

相关文章:

javascript - 将 slider 线性值转换为指数

javascript - PhantomJS Web 抓取 Cisco 交换机 Web 界面

javascript - 如何从未隐藏的第一个复选框中获取值

css - 文字溢出 float 的div

javascript - 格式化字符串的对象

javascript - 无需 Websocket 即可向浏览器异步推送消息

php - 在php中必须从jquery [object Object]获取数据

css - 为什么动态生成的内容不改变包含div的高度?

javascript - 我如何给div平等的位置权力

javascript - 如何在 React 中收集所有选中复选框的 ID 并将值推送到数组