Страница 1 из 1

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

СообщениеДобавлено: 06 май 2011, 18:17
xcreativ
Здравствуйте, встроил на сайт 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>


Однако, по нажатии кнопки "Ок" результата никакого.
Заранее, огромное спасибо!

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

СообщениеДобавлено: 06 май 2011, 19:11
admin
Код: Выделить всё
$(function() {
   $('#dialog').dialog({

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

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


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



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

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

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

СообщениеДобавлено: 06 май 2011, 20:32
admin
Код: Выделить всё
$(this).parent().find("a:last").attr('href');



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


Возвращать "return false;" не надо - мы же файл возвратить хотим!