javascript - 处理页面上多个位置的相同 div 的最佳方法

标签 javascript jquery html jquery-ui forms

我有一个相当大的 div。可能有 20 个字段。

我使用此表单创建新用户和编辑现有用户。我有一个用户搜索,如果您单击结果列表中的任何结果,它会显示此表单。重点是,我经常在多个地方使用它。

我的问题是管理此问题的最佳策略是什么?

我的第一个想法是创建表单并在页面加载时隐藏它。然后将它附加到我需要它的地方并显示它。但是当我尝试在包含此表单的容器上使用 empty 时,事情变得非常复杂,因为我会让他们永远无法再次使用它。

所以我尝试创建一个全局变量:var MY_FORM = $("#MyForm"); 然后在需要时使用 .append(MY_FORM),但是这没有用。

然后我考虑使用 .html() 在我需要的地方复制表单。但这对于复制的 ID 来说变得非常复杂。 .button() 要求我使用一个标签,该标签需要一个依赖于 buttons id 属性的 for 属性,该属性将与表单的多个实例一起复制。

我最近的想法是只在可能需要的地方创建表单,并在适当的时候显示它。

如您所见,我很矛盾,我的头很痛,而且现在还是早上 8 点。我在哪里... :-(

非常感谢任何帮助,谢谢!

附言如果您能想到更好的标题,请随时更改它。

最佳答案

您使用全局变量和附加方法的解决方案应该有效(如果正确实现)

查看演示 http://jsfiddle.net/gaby/aCnuR/

示例 html

<div id="place1" class="formplacer">
    <button class="getform">Bring form here</button>
</div>
<div id="place2" class="formplacer">
    <button class="getform">Bring form here</button>
</div>
<div id="place3" class="formplacer">
    <button class="getform">Bring form here</button>
</div>

<form id="multiform">
    input
    <input type="text" name="field1" />
    <input type="submit" name="submit" value="sumbit" />
</form>

示例 jquery

var myform = $('#multiform').detach();

$('.getform').click(function(){
    $(this).closest('.formplacer').append(myform);
});

更新
(使用动画而不使用分离,因为它不是真正需要的..)

var myform = $('#multiform').hide(0);

$('.getform').click(function(){
    var base = this;
    myform.slideUp('slow', function(){
        $(base).closest('.formplacer').append(myform.slideDown('slow'));
    });
});

演示:http://jsfiddle.net/gaby/aCnuR/6/

关于javascript - 处理页面上多个位置的相同 div 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509547/

相关文章:

javascript - Jquery 在包装时更改元素

javascript - jquery 迭代 '.each' 中的数字

javascript - 未捕获的类型错误 : Object [object Object] has no method 'colorpicker'

javascript - 获取图像的大小、高度和宽度?

javascript - 使用 HighCharts 的 24 小时时间事件图表

html - 将 HTML5 视频渲染到 Canvas 会压缩图像

html - 如何删除微调器上的奇怪线条

javascript - Html使用javascript将数据传递到新窗口

javascript - 传单 map 不适合边界

一组图形的 Javascript 放大镜 - 跨浏览器兼容性