代码之家  ›  专栏  ›  技术社区  ›  svk

为什么Jquery append中没有另一个Jquery插件?

  •  1
  • svk  · 技术社区  · 15 年前


    This is the code

    第一次它的工作对我来说很好。那就是它打开了模式框。但是第二次当我使用Jquery append添加锚标记时它不会打开模式框。为什么?我需要改变的是工作?谢谢。

    更新:

    我在用 Thickbox

    <input type="text" name="maxprocedure"  id="maxprocedure" value="1"/>
    <div id="procedurecontainer">
      <a title="Google Site" class="thickbox" href="http://www.google.com?width=200&height=200" >Open Here</a>
    </div>
    <input type="button" id="addprocedure" value="add"/>`
    

    Jquery代码是

     $(document).ready(function() {
         $('#addprocedure').click(function()
        {
          //alert($("#maxprocedure").val());
          var maxvalue=$("#maxprocedure").val();
          for(var i=1;i<=5;i++)
          {
            var idvalue=parseInt(maxvalue)+i;
            $("#procedurecontainer").append('<input type="text" value="" id="procedurecode'+idvalue+'" name="procedurecode'+idvalue+'"></input><a title="Google Site" class="thickbox" href="http://google.com?width=200&height=200">Open Here</a>');
            $("#maxprocedure").val(idvalue);
    
          }
      });
    
    });
    
    3 回复  |  直到 15 年前
        1
  •  1
  •   Alex Bagnolini    15 年前

    Thickbox连接到所有 a , area input 包含 thickbox 当文档完成加载时初始化。

    如果在加载文档后添加更多相同类型的元素,则单击它们时不会显示弹出窗口。

    在不更改插件实现的情况下,修复方法是手动将新元素绑定到thickbox。

    var idvalue=parseInt(maxvalue)+i,
        //store the element in a variable for better reading
        $hyperlink = $('<a title="Google Site" class="thickbox" href="http://google.com?width=200&height=200">Open Here</a>');
    
    //this attaches the element to the thickbox plugin
    tb_init($hyperlink);
    
    $("#procedurecontainer")
        .append('<input type="text" value="" id="procedurecode'+idvalue+'" name="procedurecode'+idvalue+'"></input>')
        .append($hyperlink);
    
    $("#maxprocedure").val(idvalue);
    
        2
  •  0
  •   Pointy    15 年前

    问题是,“thickbox”初始化只在第一次加载主页面时发生。当您添加这些新链接时,thickbox插件并不知道它们在那里,因此它们不像您的第一个链接那样初始化。

    在追加新添加的元素后,需要用选择器调用“tb_init”。

        3
  •  0
  •   jknair    15 年前

    在附加a标记之后,必须调用tb_init('a.thickbox')检查它: http://www.jsfiddle.net/Z4yYf/7/