替换元素,然后单击返回旧元素

时间:2013-03-18 16:31:32

标签: javascript jquery

我有以下功能:

datum.on('change', function(){
    var url = '<?php echo base_url()  ?>admin/admin_tvprogram .tvprogram > *';
    tvprogram.empty().load(url, {'datum':$(this).val()}, function(){
        var izmeni = $(this).find('a');
        izmeni.on('click', function(){
            var sat = $(this).parent().find('.sat'),
            sat_vrednost = sat.text(),
            naziv = $(this).parent().find('.naziv'),
            naziv_vrednost = naziv.text(),
            vrati = $(this).parent().append('<span class=vrati>Vrati</span>');

            var novi_sat = sat.replaceWith('<input type=text name=sat value=' + sat_vrednost + ' >' ),
            novi_naziv = naziv.replaceWith('<input type=text name=naziv value=' + naziv_vrednost + ' >' );

        });
    });
});

一切正常,但我还需要一个功能。当用户点击 vrati (新添加 span 元素)时,元素 sat naziv 需要返回原始元素形成。我怎么能这样做?

当激活加载功能时,我得到以下HTML:

<ul>
    <li>
    <span class="sat">18:00</span>
    <span class="naziv">Opravka Traktora</span>
    <a data-id="2">Izmeni</a>
  </li>
</ul>

点击 izmeni 后,我得到以下HTML:

<ul>
<li>
<input type="text" value="18:00" name="sat">
<input type="text" traktora="" value="Opravka" name="naziv">
<a data-id="2">Izmeni</a>
<span class="vrati">Vrati</span></li>
</ul>

2 个答案:

答案 0 :(得分:0)

当您点击用户时,您正在保存元素的值。

可能需要在执行加载之前保存值,然后点击中的相同代码将恢复它们。

答案 1 :(得分:0)

从您定义的变量填充列表输入表,然后将j query .text动作应用于sat和naziv,在单击vrati时再次为其提供该变量的参数

//在文件加载时调用函数textvalueToggle,将值分配给sat和naziv。然后将一个单击侦听器附加到vrati以调用相同的函数重新分配值

    $(document).ready(function() {
           textvalueToggle();
           $('#vrati').click(textvalueToggle);
    });

    function textvalueToggle() {
       $('#sat').text('18:00');
       $('#naziv').text('Opravka Traktora');
   }