Обработка событий из тегов привязки HTML в ExtJS - PullRequest
0 голосов
/ 05 февраля 2009

У меня есть большое приложение, встроенное в ExtJS, и я ищу лучший способ обработки пользовательских событий из любой точки приложения. Например, я мог бы захотеть поместить тег привязки в некоторый текст в приложении, который откроет пользовательский компонент в моем приложении. В данный момент я слушаю щелчки по телу, и если к цели применен класс css в определенном формате, я использую его для выполнения действия.

Например, я мог бы иметь:

<a class="ACTION-View-Customers">View Customers</a>

Мой обработчик событий разделит имя класса и выполнит действие. Проблема этого подхода в том, что многие параметры трудно передать обработчику. Я предлагаю использовать JSON внутри тегов class или href якоря, например:

<a href="#" class="{ action: 'View', options: { name: 'Customers', type: 'All' } }">View Customers</a>

Можете ли вы вспомнить какие-либо проблемы с этим подходом и предложить какие-либо альтернативы? Спасибо.

Ответы [ 3 ]

1 голос
/ 06 февраля 2009

Лично я бы не использовал дополнительную мету в самом HTML, если бы это помогло. Я бы применял конкретные идентификаторы к ссылкам определенного назначения и связывал событие клика с этим объектом. Я также нашел объект DomQuery (необходимый для поиска и ссылки на якоря) интересным для работы. Поскольку я обычно использую адаптер JQuery с Ext JS, я буду использовать селекторы JQuery для определения местоположения конкретного элемента DOM и функции связывания JQuery [.click (fn)], используя Ext внутри самой функции. JQuery и Ext JS создают отличную комбинацию, особенно с новым JQuery 1.3.1, который действительно ускоряет процесс.

0 голосов
/ 09 февраля 2009

Как вы, возможно, знаете, тег HTML принимает ЛЮБОЙ именованный атрибут. Таким образом, вы можете создать какой-либо специально названный атрибут (ы) и передать им любое значение (значения) (например, my-bogus-param="something"). Таким образом, вы можете разработать любую сложную систему передачи параметров. Затем вы можете проанализировать эти атрибуты в обработчике событий.

0 голосов
/ 07 февраля 2009

Я предлагаю использовать атрибуты HTML5 data- . Например:

<a href="#" data-event="{ action: 'View', options: { name: 'Customers', type: 'All' } }">View Customers</a>

var eventsource = link.getAttribute("data-event");

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...