首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery appendTo()的问题

jQuery appendTo()的问题
EN

Stack Overflow用户
提问于 2010-10-05 22:15:59
回答 4查看 938关注 0票数 0

我在将列表项目从一个ul附加到另一个ul时遇到问题。当每个列表项被点击时,它应该被附加到另一个ul中。但是,一旦这些项被附加,它们将继续将自己附加到当前的ul....meaning中,并将自己排序到列表的底部。例如:

代码语言:javascript
复制
<ul class="first-holder">
            <li><input type="checkbox" name="location1"  /> Location 1</li>
            <li><input type="checkbox" name="location2"  /> Location 2</li>
            <li><input type="checkbox" name="location3"  /> Location 3</li>
            <li><input type="checkbox" name="location4"  /> Location 4</li>
            <li><input type="checkbox" name="location5"  /> Location 5</li>


            </ul>


            <div class="more-options first-option">
            <ul>
            <li><input type="checkbox" name="location-6" checked="checked" /> Location 6</li>
            <li><input type="checkbox" name="location7" checked="checked" /> Location 7</li>
            <li><input type="checkbox" name="location8" checked="checked" /> Location 8</li>
            </ul>
            </div>

jquery:

代码语言:javascript
复制
$('div.more-options li').click(function() {

                $(this).appendTo($('ul.first-holder'));
                return false;

           }); 

发生的情况是这样的: div.more-options中的列表项将附加到ul.first-holder,但是当这些项在ul.first-holder中时,单击它们将导致它们附加到ul.first-holder的末尾。一旦li被附加到ul.first-holder之后,它们就不应该移动。我想不出该怎么做。

EN

回答 4

Stack Overflow用户

发布于 2010-10-05 22:19:25

请尝试从该项中删除事件处理程序。它将停止接收点击事件。

代码语言:javascript
复制
$(this).unbind('click');
$(this).appendTo($('ul.first-holder'));

http://api.jquery.com/unbind/

票数 0
EN

Stack Overflow用户

发布于 2010-10-05 22:20:26

这是因为您正在移动附加了click事件的节点。因此,当该节点被附加到另一个用户界面时,单击事件仍然适用。

您可以复制节点并追加该节点,也可以在追加时移除click事件。

票数 0
EN

Stack Overflow用户

发布于 2010-10-05 22:21:06

在这里使用.delegate(),如下所示:

代码语言:javascript
复制
$('div.more-options').delegate('li', 'click', function() {
  $('ul.first-holder').append(this);
}); 

You can test it out here

目前,您的click处理程序位于<li>元素上,使用them...instead移动会将click处理程序放在.more-options <div>本身上,因此没有要移动的处理程序。如果您有多个元素,这也会降低执行成本:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3864510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档