jquery - jQuery 添加的元素对 .click(function() 的响应很奇怪

标签 jquery bind

我有一个 JsFiddle继续我试图解决的问题。

本质上,我有一组复选框。我还有一个字段,可让您将复选框项目添加到该集合中。最后,我有向上和向下箭头,可让您更改排序顺序。

我遇到的问题是添加到集合中的项目 react 很奇怪。当我单击将这些项目向上移动时,它们会跳到集合的顶部。我looked into this link并找到了很好的信息,但仍然无法解决问题。

代码如下。我感谢您提供的任何建议!

HTML

<div id="main">
    <div id="addbox">
        <p>Enter value:
            <br>
            <input id="Text1" type="text" size="38">
            <input id="Button3" type="submit" value="+">
        </p>
    </div>
    <div id="selectbox">
        <p>You can also select from these:</p>
        <div id="mobilecb">
            <div class="cbholder">
                <div class="cbitem" id="cbitem-1-id">
                    <input type="checkbox" checked="" class="thecb" value="1" name="collection[]">1</div>
                <div class="cbup"></div>
                <div class="cbdown"></div>
            </div>
            <div class="cbholder">
                <div class="cbitem" id="cbitem-2-id">
                    <input type="checkbox" checked="" class="thecb" value="1" name="collection[]">2</div>
                <div class="cbup"></div>
                <div class="cbdown"></div>
            </div>
            <div class="cbholder">
                <div class="cbitem" id="cbitem-3-id">
                    <input type="checkbox" checked="" class="thecb" value="1" name="collection[]">3</div>
                <div class="cbup"></div>
                <div class="cbdown"></div>
            </div>
        </div>
    </div>
</div>  

CSS

#main {
    width:400px;
}
.cbholder {
    border: 1px solid #ccc;
}
}
.cblocation {
    float:left;
    margin: 10px 10px 10px 0px;
    width:80%;
}
.cbdown {
    border-color: black transparent transparent;
    border-style: solid;
    border-width: 11px 7px 10px;
    float: right;
    margin-top:0px
}
.cbup {
    border-color: transparent transparent black !important;
    border-style: solid;
    border-width: 11px 7px 10px;
    float: right;
    margin: 0px 4px 0px 20px;
}
#mobilecb {
    clear:both;
    display:inline-block!important;
    text-align:left;
    float:left;
    background:#fff;
    font-size:.8em;
    border:1px solid #000;
}
.cbholder {
    margin: 20px 0 0px 0;
}

JQuery (1.4.1)

 $('#Button3').click(function () {
     $('#mobilecb').append('<div class="cbholder"><div class="cbitem"><input type="checkbox"    checked="" class="thecb" value="' + $('#Text1').val() + '" name="collection[]">' + $('#Text1').val() + '</div><div class="cbup"></div><div class="cbdown"></div>   </div>')
         .bind("click", function (e) {
         $('.cbup').click(function () {
             var parent = $(this).parent();
             parent.insertBefore(parent.prev());
         });
         $('.cbdown').click(function () {
             var parent = $(this).parent();
             parent.insertAfter(parent.next());
         });
     });
 });

 $('.cbup').click(function () {
     var parent = $(this).parent();
     parent.insertBefore(parent.prev());
 });
 $('.cbdown').click(function () {
     var parent = $(this).parent();
     parent.insertAfter(parent.next());
 });

最佳答案

已解决http://jsfiddle.net/U2E3Y/10/ 。您已使用点击事件限制了父元素 $('#mobilecb')

关于jquery - jQuery 添加的元素对 .click(function() 的响应很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582980/

相关文章:

linux - 虚拟 IP 配置不起作用,我仍然收到地址已在使用错误

javascript - 我想使用 jquery 在标签之间附加 anchor 文本

javascript - 如何使用 jquery 定位下拉选择器

javascript - 重复的 $.ajax 请求不会触发回调

jquery - Jquery的show hide命令中div没有被完全替换

performance - wxPython FloatCanvas 事件绑定(bind)

jquery - 将插件/事件绑定(bind)到动态加载的元素

javascript - 单击时出现奇怪的链接行为

android - 如果服务在另一个进程中,如何绑定(bind)服务?

c++ - boost::bind 和删除