Как изменить заголовок отделения с помощью jQuery

У меня есть следующий код:

<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>
17
задан David O'Meara 25 July 2013 в 03:09
поделиться

7 ответов

Спасибо за все ответы.

В $('#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");
                 }
             }
         });
1
ответ дан 30 November 2019 в 11:43
поделиться

Похоже, ваш плагин читает заголовок, прежде чем перейдет к этой функции 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')
;
0
ответ дан 30 November 2019 в 11:43
поделиться

Задает заголовок диалогового окна. Заголовок также можно указать с помощью атрибута заголовка в элементе источника диалогового окна .

Примеры кода

Инициализировать диалоговое окно с указанным параметром заголовка.

$( ".selector" ).dialog( { title: 'Dialog Title' } );

Получить или установить параметр заголовка после инициализации.

//getter
var title = $( ".selector" ).dialog( "option", "title" );
//setter
$( ".selector" ).dialog( "option", "title", 'Dialog Title' );

источник .

, чтобы ответить на ваш , в диалоговом окне не отображается заголовок .

0
ответ дан 30 November 2019 в 11:43
поделиться

Попробуйте установить атрибут заголовка после открытия диалогового окна. Вероятно, ваш dialog.open () будет сбрасывать атрибут заголовка.

Я думаю, вы можете предоставить функцию обратного вызова для события открытия.

См. открыть

0
ответ дан 30 November 2019 в 11:43
поделиться

Я сделал это:

$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
//more code
$("#div1").dialog("option", "title", "joopla, here is a new title");

У меня это работает

0
ответ дан 30 November 2019 в 11:43
поделиться

Пробовали ли вы какие-либо из приведенных здесь предложений: Как изменить атрибут заголовка элемента с помощью jQuery ?

Похоже, вы делаете то, что предлагает принятый ответ. Если это не сработает, возможно, это сделают другие.

1
ответ дан 30 November 2019 в 11:43
поделиться

Вы можете изменить заголовок диалогового окна напрямую с помощью:

$('#DivPassword').dialog('option', 'title', 'Photo by Kelly Clark');

Это будет работать в вашем случае. Фактически, ваш код для изменения атрибута title правильный. Я предполагаю, что плагин диалога создает диалог, когда сначала вызывается .dialog. Тогда метод open просто отображает диалоговое окно, не создавая его повторно из div.

23
ответ дан 30 November 2019 в 11:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: