Я могу заставить это работать, если у меня есть один из каждого. Один div, один скрипт и одна ссылка. В моем случае диалоговое окно позволяет пользователю оставлять «заметки» для каждой записи базы данных. У меня нет никаких кнопок в диалоговом окне, только верхнее правое «x» по умолчанию, чтобы закрыть диалоговое окно.
Но я пытаюсь заставить это работать в цикле запросов ColdFusion . Несколько записей, каждая из которых имеет свою собственную диалоговую кнопку, связанный скрипт и div. Я динамически меняю идентификаторы, чтобы они все были уникальными (то есть добавляю _XX, где XX - первичный ключ записи ко всем идентификаторам).
Когда я расширяюсь до этой модели, имея несколько диалогов, сценариев, элементов div. Если я открою каждое диалоговое окно, чтобы отредактировать соответствующую «заметку» для этой записи, она сохранит только последнюю. Должен ли я делать .parent (). AppendTo на нажатие кнопки против автоматически? Где-то это запутывается.
Если я не открою какой-либо диалог (не делаю никаких изменений с помощью диалога) и не выполню дамп результатов поиска, я вижу все диалоговые поля, проходящие в сообщении, как и ожидалось.
Когда я смотрю на необработанный HTML, созданный ... Все идентификаторы уникальны и вызываются соответствующим образом. Я думал, что где-то столкнулся с конфликтующим именем / идентификатором, но на этом фронте все выглядит хорошо.
Мой сценарий:
<script type="text/javascript">
// Increase the default animation speed to exaggerate the effect
$.fx.speeds._default = 1000;
$(function() {
$( "##dialog#getALLFacilityEquipOrders.order_id#" ).dialog({
autoOpen: false,
show: "blind",
hide: "explode",
width: 500,
resizable: false
});
$('.countable2').jqEasyCounter({
'maxChars': 2000,
});
// Dialog Link
$('##dialog_link#getALLFacilityEquipOrders.order_id#').click(function(){
$('##dialog#getALLFacilityEquipOrders.order_id#').dialog('open');
return false;
});
//hover states on the static widgets
$('##dialog_link#getALLFacilityEquipOrders.order_id#, ul##icons li').hover(
function() { $(this).addClass('ui-state-hover'); },
function() { $(this).removeClass('ui-state-hover'); }
);
$("##dialog#getALLFacilityEquipOrders.order_id#").parent().appendTo($("form##allequipedit"));
});
</script>
Мой div:
<div id="dialog#getALLFacilityEquipOrders.order_id#"
title="Notes For #getALLFacilityEquipOrders.cLicenseNumber# - Order ID: ORD-#getALLFacilityEquipOrders.order_id#"
style="display:none;">
<cfquery datasource="#a_dsn#" name="getOrderNotes">
select notebody
from QIP_EquipOrders_Notes
where fk_order_id = #getALLFacilityEquipOrders.order_id#
</cfquery>
<fieldset class="qip_menu">
<label><b>Enter/Edit Notes:</b></label>
<textarea class="countable2"
id="notebody_#getALLFacilityEquipOrders.order_id#"
name="notebody_#getALLFacilityEquipOrders.order_id#"
rows="10"
cols="75">#getOrderNotes.notebody#</textarea>
</fieldset>
</div>
Моя кнопка:
<a href="##"
id="dialog_link#getALLFacilityEquipOrders.order_id#"
class="ui-state-default ui-corner-all"
><span class="ui-icon ui-icon-newwin"></span>Notes</a>