如何将数据(一个被删除的元素)传递给jQuery对话框?

时间:2009-11-26 16:09:16

标签: jquery

这可能很简单,但我无法理解它。

基本上我有一个设置为接受删除元素的列表。我希望显示一个jQuery对话框以响应被删除的元素,并在用户按下OK后,使用有关所述已删除元素的信息发布到服务器。

我当前的问题是我必须在调用之前设置jQuery对话框(在文档加载中),因此必须定义按下Ok时运行的函数。但是我不能在这个阶段访问被删除的元素,因为我不知道它是什么。

目前我正在设置一些不可见的跨度来保存我需要的被删除元素中的数据,并在绑定到Ok的函数运行时将其读回。我确定必须有更好的方法。

先谢谢,道歉是这个问题有些令人困惑。

4 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点:

我假设您使用模态窗口创建了对话框,我是对的吗?

所以你有一个带有消息和按钮的对话框,让我们假设按钮会在sumbit上传递一些特定的参数。

现在关于方法:

  1. 如果动态创建调用者元素,请使用jquery data()函数:

    $('#someDiv')。data('someVar','itsVal');

  2. 使用属性:

    $('#someDiv')。attr('rel','itsVal');

  3. 或通过html注入

    <div id="someDiv" rel="itsVal">Hello</div>
    

    在显示对话框中,您可以使用以下方式访问该值:

    var $myVar = $('#someDiv').data('someVar');
    

    var $myVar = $('#someDiv').attr('rel');
    
    Theese的是我解决这个问题的默认方式。 希望它有所帮助

答案 1 :(得分:1)

为什么不把它粘在变量中?可以是全局的,也可以是写代码和读代码都可以访问的。

答案 2 :(得分:1)

对话框实际上是一个div,它保持隐藏(你知道),所以在实际显示之前,只需用jquery添加其中的内容

假设对话框有id-“对话框”,用

表示
$("#dialog").innerHTML(yourDiv);

在您展示之前

答案 3 :(得分:1)

这种方式听起来很公平,在页面或对话框上使用<input type="hidden" />字段的类似解决方案也是如此。

如果在任何函数或子句之外声明变量,则可以在所有JS中访问它。例如:

<script type="text/javascript" language="javascript">

    var info;

    //...

    drop: function(){
        info = {
            info1: "value",
            info2: "value"
        }
    }

    //...

    function clickOK(){
        alert(info.info1);
        alert(info.info2);
    }

但你的方式真的很好!