** 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>