#jquery #cakephp
#jquery #cakephp
Вопрос:
У меня есть следующий код jQuery:
$('body').append('<div id="lang-dialog"></div>');
$('#lang-dialog').load('URL HERE...');
$('#lang-dialog').dialog({
modal: true,
draggable: false,
resizable: false,
autoOpen: false
});
$('a#lang').click(function(event)
{
event.preventDefault(); $('#lang-dialog').dialog('open');
});
Это заставляет ссылку загружать диалоговое окно, созданное в DOM, а затем динамически загружать его содержимое, используя представление элемента здесь: app/views/elements/lang-dialog.ctp
Как мне это сделать, используя CakePHP, чтобы выдать элемент в методе load моего кода jquery?
Спасибо
Комментарии:
1. Вам нужно переместить
$('#lang-dialog').dialog(...)
вызов вsuccess
обратный вызов.load()
метода. В противном случае вы попытаетесь создать диалоговое окно до загрузки разметки (поскольку.load()
оно асинхронное).2. Не могли бы вы объяснить это на примере кода, пожалуйста? Спасибо
Ответ №1:
Вам нужно переместить $('#lang-dialog').dialog(...)
вызов в успешный обратный вызов .load()
метода. В противном случае вы попытаетесь создать диалоговое окно до загрузки разметки (поскольку .load()
оно асинхронное).
Не могли бы вы объяснить это на примере кода, пожалуйста?
Конечно.
$('body').append('<div id="lang-dialog"></div>');
var $langDialog = $('#lang-dialog')
$langDialog.load('URL HERE...', function ()
{
$langDialog.dialog({
modal: true,
draggable: false,
resizable: false,
autoOpen: false
});
});
$('#lang').click(function()
{
$langDialog.dialog('open');
return false;
});