【问题标题】:Disable text once it is moved from one UL to another UL将文本从一个 UL 移动到另一个 UL 后禁用文本
【发布时间】:2014-07-23 08:09:10
【问题描述】:

此代码将在单击时从右到左添加列表中的项目。我们必须单击弹出图像才能移动。现在我期望做的是从 json 文件中获取元素,一旦我将文本移动到另一个框,则必须禁用该选择。用户不能再次单击它,换句话说,可以选择一次。但该项目不得从第一个列表中删除。请帮忙。提前致谢

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Example</title>

        <link rel="stylesheet" href="//code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css">
        <script type = "text/javascript" src = "js/jquery.js"></script>
        <script type = "text/javascript" src = "js/jquery_ui.js"></script>
        <link rel="stylesheet" href="/resources/demos/style.css">       
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

        <style>
            #firstlist li:hover img {display: inline;}
            #firstlist li:hover { background: #CCF5CC; }
            #firstlist .ui-selected { background: #80B280; }
            #firstlist { list-style-type: none;}
            #firstlist li { margin: 3px; padding: 0.3em;}

            #seclist {list-style-type: none;}
            #seclist li {padding: 0.2em;}

            img {display:none;}
        </style>
    </head>

    <body>
        <table id="myTable" class= "table table-bordered">
            <tr>
                <th class="col-md-6 text-center success">
                    List 1
                </th>
                <th class="col-md-6 text-center success">
                    List 2
                </th>
            </tr>
            <tr>    
                <td class="col-md-6">
                    <ul id="firstlist">
                        <li>Apple <img src="next.jpg" id="next1"></li>
                        <li>Orange <img src="next.jpg" id="next2"></li>
                        <li>Avacado <img src="next.jpg" id="next3"></li>
                        <li>Banana <img src="next.jpg" id="next4"></li>
                        <li>Mango <img src="next.jpg" id="next5"></li>
                    <ul>    
                </td>
                <td class="col-md-6">
                    <ul class = "seclist" id = "seclist"> </ul>
                </td>
            </tr>
        </table>

        <script>        
            $(function(){
                $( "#firstlist" ).selectable();
            });

            $(function() {
                $( "#seclist" ).selectable();
            });

            $("img").click(function() {
                var text = $(this).closest("li").text();
                $('<li />', {html: text}).appendTo('ul.seclist')
            });
        </script>
    </body>
</html>

【问题讨论】:

  • 你怎么知道文本被禁用了
  • 请分享 jsfiddle 链接
  • 其实不必禁用它。用户不能再次添加。因此,如果图像被禁用或者即使它在悬停时可见,也不会发生移动
  • @Vithushan 检查我的答案

标签: javascript jquery html css json


【解决方案1】:

fiddle demo

检查上面的链接。只需解绑点击事件

     $("img").click(function(event) {
            var text = $(this).closest("li").text();
            $('<li />', {html: text}).appendTo('ul.seclist');
            $(this).unbind('click');
        });

它不会删除元素,只允许你第一次点击它。

【讨论】:

  • +1 这是一个很好的解决方案。您可以使用$(this).unbind('click') 代替$(event.target).parent().find('img').unbind('click') 并删除不必要的括号see this
  • 是的:) 感谢您的建议。修改为更短的高效版本
  • 非常感谢。有用。因此,如果我想从任何其他功能再次启用它,我应该怎么做。例如,如果我想通过单击图像(我必须添加)从第二个列表中删除项目并启用它以添加我应该怎么做???再次感谢您的回复
  • 做绑定('click',function(){})
【解决方案2】:

试试这个

$("img").on("click" , function() {
            var text1 = $(this).closest("li").text();
            $('ul.seclist').append("<li>"+text1+"</li>");
            $(this).off("click");
});

$("img").on("click" , function() {
            var text1 = $(this).closest("li").text();
            $('<li />', {html: text1}).appendTo('ul.seclist');
            $(this).off("click");
   });

DEMO

【讨论】:

  • 你的代码和 OP 有什么区别?我无法得到它。
  • 非常感谢。有用。因此,如果我想从任何其他功能再次启用它,我应该怎么做。例如,如果我想通过单击图像(我必须添加)从第二个列表中删除项目并启用它以添加我应该怎么做???再次感谢您的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
相关资源
最近更新 更多