2010-05-27 4 views
2

пользовательский интерфейс с диалоговым JQuery UI, мне нужно, чтобы быть в состоянии установить всплывающие подсказки на кнопках ... У меня есть следующий код:JQuery кнопка диалог

buttons: { 
'My Button' : function(e) { 
    $(e.target).mouseover(function() { 
     alert('test'); 
    }); 
} 

Это позволяет мне сделать что-то «но при наведении курсора мыши» только после нажатия кнопки. Что мне нужно сделать, чтобы сделать эту функцию до нажатия кнопки?

Благодаря

ответ

1

Что вы собираетесь делать, так это иметь обработчик для «открытого» события в диалоговом окне. Этот обработчик должен будет сканировать DOM во внешний контейнер <div>, чтобы диалоговый код обертывал содержимое вашего диалога. Оттуда ему нужно найти поле, где находятся кнопки, а затем при необходимости присоединить обработчики.

Я не могу точно помнить, что такое имена классов (используйте Firebug), но в коде диалога используются довольно очевидные метки классов, чтобы отметить, что представляют собой различные контейнеры. Существует внешний контейнер, а затем после вашего окна содержимого есть кнопки <div>. Опять же, поднимите свой диалог и используйте Firebug, чтобы посмотреть, как выглядит структура.

Вы можете настроить «открытый» обработчик в параметрах инициализации.

+0

$ ('. Ui-dialog-buttonpane button: nth-child (1)'). Mouseover (function() { // что-то делать }); – mike

+0

Да, это работает, хотя, если на странице есть несколько диалогов, тогда вы хотите охватить область, которая работает, а затем вниз от каждого конкретного диалога. Конечно, если для всех похожих кнопок во всех диалоговом окне желательно одинаковое поведение наведения мыши, то это нормально. – Pointy

0

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

Просто выберите эту кнопку обычным способом (например, $('#my-form button')), а затем присоедините событие mouseover.

+0

Проблема заключается в том, что код диалога jQuery синтезирует кнопки «на лету». Они явно не закодированы на странице. – Pointy

+0

Я уверен, что они появляются как элементы. Может быть, не в начальной разметке, а через JavaScript. Просто добавьте события, как только вы узнаете, что они были включены в страницу. – alex

+0

Справа, @alex, вот что я получил в своем ответе :-) – Pointy

Смежные вопросы