为什么另一个Jquery插件在Jquery中没有附加?

时间:2010-10-13 11:44:11

标签: jquery


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 Code是

 $(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 个答案:

答案 0 :(得分:1)

当文档加载完毕时,Thickbox会附加到包含a类的所有areainputthickbox元素。

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

不修改插件实现的修复方法是手动将新元素绑定到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);

答案 1 :(得分:0)

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

您需要在添加新元素之后使用选择器调用“tb_init”。

答案 2 :(得分:0)

你必须在附加一个标签chk后调用tb_init('a.thickbox'):http://www.jsfiddle.net/Z4yYf/7/