Вопрос относительно атрибута onclick - PullRequest
2 голосов
/ 17 ноября 2010

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

<rich:tabPanel switchType="client">
    <rich:tab name="tab1" label="tab1" onclick="alert('Hello');">
        ...
    </rich:tab>
    <rich:tab name="tab2" label="tab2" onclick="alert('Hi');">
        ...
    </rich:tab>
</rich:tabPanel>

Этот код сгенерирует панель с 2 заголовками вкладок, например:

+------+ +------+
| tab1 | | tab2 |
+      +-+------+--------------------------+
|                                          |
|    Content of my Tab goes here...        |
|                                          |
+------------------------------------------+

Что касается используемого кода, я ожидал бысм. предупреждение JavaScript, в котором говорится Hi, если я нажимаю на заголовок tab2.

Однако ничего не отображается, и я просто переключаюсь на вторую вкладку.

Фактически, если янажмите на вкладку content , появится сообщение с предупреждением.

Я немного сбит с толку относительно этого поведения.

Вопрос № 1 Это нормальное поведение?Другими словами, onclick относится к событию щелчка по содержимому, а не к заголовку вкладки.

Действительно, если я посмотрю на эту запись иэтот связанный дефект , он не кажется правильным ...

Вопрос № 2 Если это нормальное поведение, как я могу установить другое onclickповедение для каждой вкладки?Действительно, если я установлю onclick на <rich:tabPanel> вместо компонента <rich:tab>, функция javascript onclick будет всегда выполняться.

Я использую Richfaces 3.3.2.GA, JSF1.2 + Facelets, Java 1.6

1 Ответ

2 голосов
/ 17 ноября 2010

После просмотра форума Richfaces и особенно этой ошибки , а также кода этого компонента, я обнаружил, что есть атрибут onlabelclick, который точно соответствует тому, что я хочу сделать.

Итак, ответ на мой первый вопрос: Да , а рабочий код для второго вопроса:

<rich:tabPanel switchType="client">
    <rich:tab name="tab1" label="tab1" onlabelclick="alert('Hello');">
        ...
    </rich:tab>
    <rich:tab name="tab2" label="tab2" onlabelclick="alert('Hi');">
        ...
    </rich:tab>
</rich:tabPanel>

Я не знал об этом атрибуте, потому что site и руководство разработчика Richfaces ничего не говорят о них, а мой плагин Eclipse IDE + JBoss Tools этого не сделал включите их в механизм автозаполнения.

...