У меня есть следующий код:
<div id="DivPassword" title="test" >
Я хочу изменить заголовок отделения, и у меня есть следующий код:
function ChangeAttribute() {
$("#DivPassword")
.attr('title', 'Photo by Kelly Clark');
$('#DivPassword').dialog('open');
return false;
}
Когда диалоговое окно открыто, заголовок является все еще тестом! если я не присваиваю заголовка отделению, диалоговое окно не показывает заголовка. Как я могу исправить это?
function ChangeAttribute() {
$("#DivPassword")
.attr('title', 'Photo by Kelly Clark')
.dialog('open');
alert($("#DivPassword").attr('title'));
}
$('#DivPassword').dialog({
autoOpen: false,
width: 800,
buttons: {
"Cancel": function() {
$(this).dialog("close");
},
"Accept": function() {
alert($(this).attr('title'));
$(this).dialog("close");
}
}
});
<script type="text/javascript">
var Dtitle;
$(function() {
$('#DivPassword').dialog({
autoOpen: false,
width: 800,
title : Dtitle,
buttons: {
"Cancel": function() {
$(this).dialog("close");
},
"Accept": function() {
$(this).dialog("close");
}
}
});
});
function ChangeAttribute(name) {
$("#DivPassword")
.attr('title', name)
.dialog('open');
Dtitle = $("#DivPassword").attr('title');
alert(Dtitle);
}
</script>
Спасибо за все ответы.
В $('#DivPassword').dialog({
должно быть после .dialog('open');
Проще всего было сделать так:
$("#DivPassword")
.dialog('open');
$('#DivPassword').dialog({
autoOpen: false,
title: $('#DivPassword').attr('title') + name,
width: 400,
buttons: {
"Cancel": function() {
$(this).dialog("close");
},
"Accept": function() {
$(this).dialog("close");
}
}
});
Похоже, ваш плагин читает заголовок, прежде чем перейдет к этой функции ChangeAttribute. Опубликованный вами код обязательно изменит атрибут title, так что за кулисами происходит что-то еще.
Кроме того, пока я здесь, не забудьте использовать цепочку. Большинство функций в jQuery снова возвращают тот же объект:
$("#DivPassword").attr('title', 'Photo by Kelly Clark').dialog('open');
// or like this, perhaps easier to read:
$("#DivPassword")
.attr('title', 'Photo by Kelly Clark')
.dialog('open')
;
Задает заголовок диалогового окна. Заголовок также можно указать с помощью атрибута заголовка в элементе источника диалогового окна .
Примеры кода
Инициализировать диалоговое окно с указанным параметром заголовка.
$( ".selector" ).dialog( { title: 'Dialog Title' } );
Получить или установить параметр заголовка после инициализации.
//getter
var title = $( ".selector" ).dialog( "option", "title" );
//setter
$( ".selector" ).dialog( "option", "title", 'Dialog Title' );
источник .
, чтобы ответить на ваш , в диалоговом окне не отображается заголовок
.
Попробуйте установить атрибут заголовка после открытия диалогового окна. Вероятно, ваш dialog.open () будет сбрасывать атрибут заголовка.
Я думаю, вы можете предоставить функцию обратного вызова для события открытия.
См. открыть
Я сделал это:
$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
//more code
$("#div1").dialog("option", "title", "joopla, here is a new title");
У меня это работает
Пробовали ли вы какие-либо из приведенных здесь предложений: Как изменить атрибут заголовка элемента с помощью jQuery ?
Похоже, вы делаете то, что предлагает принятый ответ. Если это не сработает, возможно, это сделают другие.
Вы можете изменить заголовок диалогового окна напрямую с помощью:
$('#DivPassword').dialog('option', 'title', 'Photo by Kelly Clark');
Это будет работать в вашем случае. Фактически, ваш код для изменения атрибута title правильный. Я предполагаю, что плагин диалога создает диалог, когда сначала вызывается .dialog. Тогда метод open просто отображает диалоговое окно, не создавая его повторно из div.