如何在jquery对话框中使用event.target在双击时更改DIV的innerHTML?

时间:2011-07-31 13:46:53

标签: jquery events dialog target innerhtml

**更新**

基本上我问的只是这个 - 有人可以向我解释如何使用event.target吗?我需要知道哪个DOM元素触发了一个事件,并在该事件中“做了些什么”(即在jquery对话框中更改DIV的内容)。谢谢!


好的,我发现了一些与我正在寻找的问题/答案相近的问题/答案,但要么它们不完全相同,要么......我只是无法弄清楚如何将它应用到我的情况中。我很确定我需要的是什么涉及“event.target”或者那种性质的东西,但我的大脑现在有点油炸了; p和我无法使它起作用。请帮忙!非常感谢,

我有一个按钮,可在单击时打开对话框。该对话框有一个表单。填写表单并单击“创建”按钮后,表单将关闭,并在文档正文中附加一个新div,其中包含输入的信息。这非常有效。我的问题是:我希望在双击新div时打开另一个对话框,以便编辑信息。我还没有尝试将当前信息包含在对话框中,我正在尝试更新div,我无法让它工作。我不知道如何将“这个”传递给对话框。

对话框如何知道div打开它然后在单击对话框的“编辑”按钮时更改div的innerhtml?

我有两个表单对话框:

<div id="dialog-form" title="Create new element">

<form>
    blah blah blah
    </form>
</div>


<div id="dialog-edit" title="Edit Element">

<form>
blah blah blah
    </form>
</div>

和一个按钮:

<button id="create-element">Create new element</button>

然后我让第一个(创建元素)对话框完美运行:

<script>
$(function() {
   var begin =  '<div class="column">' + 
         '<ol class="sortable">' + 
          '<li>' + 
         '<div ondblclick="onDblClick();">';
   var end =  '</div>' + 
         '</ol>' + 
         '</div>';


    $( "#dialog-form" ).dialog({
        autoOpen: false,
        height: 300,
        width: 350,
        modal: false,
        zIndex:101,
        buttons: {
            "Create Element": function() {

            $( "#body" ).append( begin + ...<some other stuff here>... + end );
             } 

            $( this ).dialog( "close" );


            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        },

    });

    $( "#create-element" )
        .button()
        .click(function() {
            $( "#dialog-form" ).dialog( "open" );
        });
});

</script>

双击div时:

function onDblClick() {

            $( "#dialog-edit" ).dialog( "open" );
        }

然后是“编辑元素”对话框,我不知道如何使用它来更改双击的div的innerhtml以打开它:

<script>
$(function() {

....variables here....


    $( "#dialog-edit" ).dialog({
        autoOpen: false,
        height: 300,
        width: 350,
        modal: false,
        zIndex:101,
        buttons: {
            "Update Element": function() {

need some way to set target here  =  variable1fromabove + variable2 + etc + etc;


                    $( this ).dialog( "close" );


            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        },

    });


});

</script>

1 个答案:

答案 0 :(得分:0)

我真的不明白你想做什么。但我认为这可以帮到你一些:

$('#dialog').dialog('isOpen')

它将返回true / false。因此,您可以使用它来检查现在打开的对话框。