【问题标题】:jQuery based checkbox not working基于 jQuery 的复选框不起作用
【发布时间】:2012-04-01 05:18:01
【问题描述】:
$(document).ready(function() {
    var dataString="hy";
    var htmlnew="<input type='checkbox' name='formDoor' value='A' class='list' enable='true'>Check 1";

    alert(htmlnew);

    $(".list").change(function()
    {
        $("#regTitle").append(htmlnew);
    });
 });

以上是我每次检查带有班级列表的复选框时使用的。我在#regTitle div 中得到了一个新的,但我面临的问题是新生成的复选框无法选中,你们能告诉我是什么问题吗?

【问题讨论】:

    标签: jquery html checkbox


    【解决方案1】:

    您应该使用on() 委托事件处理,以便一切都适用于新添加的元素(jQuery > 1.7);

    $("body").on("change", ".list", function()
    {
    $("#regTitle").append(htmlnew);
     });
    

    如果您使用旧版本的 jQuery,请使用 delegate 或 live

    $(document).delegate(".list","change", function()
    {
    $("#regTitle").append(htmlnew);
     });
    
    $(".list").live("change", function()
    {
        $("#regTitle").append(htmlnew);
    });
    

    【讨论】:

    • 它说 $("body").on 不是函数
    • @AlexMathew 那么你有一个旧版本的 jQuery,使用 live 或 delegate()
    • 但仍然没有任何变化,看看 .delegate 和 .on 没有工作,而是现场工作
    • @AlexMathew 这很奇怪,因为 live 是 delegate() 的简写版本,无论如何,如果它有效,ok
    • 但是 nicola,我仍然没有得到我想要的输出,我所说的 live got 工作的意思是,它没有显示任何错误
    【解决方案2】:

    您的复选框的更改事件不会附加到动态生成的元素。您将不得不委托绑定。使用 .on() 非常适合这个目的。

    $("body").on("change", ".list",function() {
        $("#regTitle").append(htmlnew);
    });
    

    【讨论】:

      猜你喜欢
      • 2018-09-15
      • 2013-11-17
      • 2016-03-13
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多