【问题标题】:Refresh DOM Jquery刷新 DOM Jquery
【发布时间】:2012-12-25 15:55:45
【问题描述】:

我的文档上有两个输入按钮,它们包含在一个主 div“容器”中。

我为他们使用的代码是:

<input id="anotherservices" type="button" value="Add Another Service">
<input id="addmultiterms" type="button" value="Go">

现在,当我单击第一个按钮,即值为“添加另一个服务”的按钮时,我需要上述两个按钮都淡出,然后执行 ajax 请求。然后两个按钮再次附加到主“容器”div。

这是递归的,这意味着当我再次单击新添加的第一个按钮时,两个新添加的按钮都会再次淡出,并且必须将另一组添加到文档中。

我用于完成此操作的代码如下:

$('#anotherservices').live("click",function(e)
{ 
$(this).fadeOut();
$('#addmultiterms').fadeOut();

/* ajax request goes here */ 

$('#container').append('<input id="anotherservices" type="button" value="Add Another Service">');

$('#container').append('<input id="addmultiterms" type="button"  value="Go">');

但是第二个按钮,值“Go”并没有淡出,因为它没有在运行时被添加到 dom。

我如何做到这一点?

【问题讨论】:

  • fadeOut() 不会删除元素,它只是隐藏它们,因此您正在创建具有相同 ID 的多个元素。为什么不使用 .append() 将现有按钮移动到容器的末尾,然后使用 fadeIn() 再次显示它们?
  • 将淡出更改为删除。现在它可以工作了。非常感谢:)

标签: jquery dom refresh


【解决方案1】:

fadeOut() 不会像评论中所说的那样删除元素。您可以使用fadeIn() 方法再次显示按钮。并且可以使用

更改按钮的值
$("#addmultiterms").attr('value', 'Go');

第二个选项是删除按钮,在添加新按钮之前可以使用下面的代码来删除按钮。

$("#addmultiterms").remove();

【讨论】:

    【解决方案2】:

    如果你是动态添加元素,你必须使用

    $(document).ready(function (){
         -- Your Function goes here
    })
    

    为什么因为第一次添加淡出和其他东西时,必须先创建它,然后您可以遵循其他逻辑,例如删除或类似的东西.. 顺便说一句,您显然必须使用“删除”....

    希望这会有所帮助......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      • 1970-01-01
      • 2012-10-30
      相关资源
      最近更新 更多