Slyweb
На разработку сайта! Скидки 50%!

jQuery UI Dialog, как назначить событие на кнопку "Ок"?

Спрашивайте здесь о jQuery UI.

jQuery UI Dialog, как назначить событие на кнопку "Ок"?

Сообщение xcreativ » 06 май 2011, 18:17

Здравствуйте, встроил на сайт jQuery UI, пытаюсь разобраться не получается. Помогите назначить событие в jQuery UI Dialog на кнопку "Ок" (будет называться Загрузить). Планируется страница с методиками, методик много на странице. Нажатие на кнопку с названием методики (в оригинале Open Dialog), должно вызывать диалоговое окно, в котором будет кнопка Загрузить и Отмена. Нажатие на кнопку Загрузить должно приводить к загрузке определенного файла (соответствующему этой методики). С переименованием, вроди, разобрался. Интересует вопрос, как сделать так, чтобы при нажатии на кнопку Загрузить, пошла загрузка определенного файла (ссылки), и еще... где эту ссылку прописывать? Внутри, какого блока? Пробовал, таким образом:
в head
Код: Выделить всё
// Dialog
 $('#dialog').dialog({
 autoOpen: false,
 width: 600,
 buttons: {
 "Ok": function() {
 $(this).click(function(){
        window.location=$(this).find("a").attr("href"); return false;

 })
 },
 "Отмена": function() {
 $(this).dialog("close");
 }
 }
 });



в боди:

Код: Выделить всё
 <!-- Dialog NOTE: Dialog is not generated by UI in this demo so it can be visually styled in themeroller-->
 <h2 class="demoHeaders">Dialog</h2>
 <p><a href="http://local.bloged.org/demo_colorbox/demo.zip" id="dialog_link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Open Dialog</a></p>
        <!-- ui-dialog -->
 <div id="dialog" title="Dialog Title">
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo<a href='http://local.bloged.org/demo_colorbox/demo.zip'></a>.</p>
 </div>


Однако, по нажатии кнопки "Ок" результата никакого.
Заранее, огромное спасибо!
xcreativ
 
Сообщения: 2
Зарегистрирован: 06 май 2011, 18:10

Re: jQuery UI Dialog, как назначить событие на кнопку "Ок"?

Сообщение admin » 06 май 2011, 19:11

Код: Выделить всё
$(function() {
   $('#dialog').dialog({

   width: 600,
   buttons: {
   "Ok": function() {

   window.location=$(this).parent().find("a:last").attr('href');


   },
   "Отмена": function() {
   $(this).dialog("close");
   }
   }
});
   });


admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02

Re: jQuery UI Dialog, как назначить событие на кнопку "Ок"?

Сообщение xcreativ » 06 май 2011, 19:52

Спасибо огромное, все получилось! Чтобы понять, сам код, объясните мне как новичку в jQuery, правильно ли я понимаю - данный скрипт после нажатия кнопки "Ок" отдает команду найти последнюю (last) приведенную в этом (this) окне ссылку?
xcreativ
 
Сообщения: 2
Зарегистрирован: 06 май 2011, 18:10

Re: jQuery UI Dialog, как назначить событие на кнопку "Ок"?

Сообщение admin » 06 май 2011, 20:32

Код: Выделить всё
$(this).parent().find("a:last").attr('href');



$(this) - кнопка "OK";
.parent() - её родительский элемент - "p";
.find("a:last") - переместится к последней ссылке внутри контейнера (p), ссылка внутри не одна (ok то же ссылка);
.attr('href'); - получить атрибут "href".


Возвращать "return false;" не надо - мы же файл возвратить хотим!
admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02


Вернуться в Вопросы по jQuery UI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron