Как использовать event.target в диалоге jquery, чтобы изменить innerHTML в DIV, когда он дважды щелкает мышью? - PullRequest
1 голос
/ 31 июля 2011

** UPDATE **

По сути, я спрашиваю только об этом - может кто-нибудь объяснить мне, как использовать event.target? Мне нужно знать, какой элемент DOM вызвал событие и «сделать что-то» с ним в этом событии (а именно изменить содержимое DIV в диалоге jquery). СПАСИБО!


Хорошо, я нашел несколько вопросов / ответов, которые были близки к тому, что я искал, но либо они не были точно такими же, либо ... Я просто не могу понять, как применить это к моей ситуации. Я почти уверен, что мне нужно задействовать «event.target» или что-то в этом роде, но мой мозг сейчас немного жарен, и я не могу заставить его работать. ПОЖАЛУЙСТА ПОМОГИ! Большое вам спасибо

У меня есть кнопка, которая открывает диалог при нажатии. Диалог имеет форму. Когда форма заполнена и нажата кнопка «Создать», форма закрывается, и новый текст добавляется к телу документа, содержащему введенную информацию. Это работает отлично. Моя проблема заключается в следующем: я хочу, чтобы при двойном щелчке этого нового элемента div открывалось другое диалоговое окно, позволяющее редактировать информацию. Я даже еще не пытался включить текущую информацию в диалог, я работаю над попыткой обновить div, и я не могу заставить его работать. Я не знаю, как передать «это», я думаю, в диалоге.

Как диалог узнает, что div открыл его, и затем изменяет innerhtml этого div при нажатии кнопки "Изменить" в диалоге?

У меня есть два диалоговых окна формы:

<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" );
        }

и затем есть диалоговое окно «Редактировать элемент», которое я не знаю, как использовать, чтобы изменить innerhtml элемента div, дважды щелкнувшего по нему, чтобы открыть его:

<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 голосов
/ 01 августа 2011

Я не очень понимаю, что вы пытаетесь сделать.Но я думаю, что это может вам помочь:

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

Возвращается true / false.Таким образом, вы можете использовать его, чтобы проверить, какой диалог открыт сейчас.

...