2014-02-19 4 views
0

У меня возникли проблемы с добавлением какого-либо события в элемент рычания. Моя цель - закрыть рычание, щелкнув правой кнопкой мыши на нем.Как добавить событие onclick в гладкость?

Я пробовал разные решения, и мой рык выглядит следующим образом:

<h:form id="loginForm" class="col-md-2 col-md-offset-5 loginForm"> 
<p:growl id="growl" showDetail="false" life="3000" sticky="true" > 
...Login Stuff ... 
<p:commandButton id="loginButton" value="Login" update="growl js" styleClass="fullWidth loginElement" 
    actionListener="#{loginBean.loginShiro}" ajax="true" 
    oncomplete="handleLoginRequest(xhr, status, args)" /> 
</h:form> 

сначала я пытался что-то вроде этого в конце в моем яваскрипте кода:

$('#growl').onClick(function() { 
    alert('Test!!!') 
}); 

Я сменил «#growl «to» .ui-growl »,« .ui-growl-item »и« .ui-growl-item-container », но без каких-либо усилий.

Тогда я подумал, что, возможно, элемент рычания не отображается, когда javascript визуализируется, и я попытался поместить свой javacode непосредственно в форму и обновить его с помощью командной кнопки. Таким образом, эта часть была непосредственно в форме:

<h:panelGroup id="js"> 
    <script type="text/javascript"> 
     $('#growl').onClick(function() { 
     alert('Test!?') 
     }); 
    </script> 
</h:panelGroup> 

... не сработало.

просто добавление свойства onclick = "..." не работает, и я не мог добавить элемент, потому что рычание - это просто сообщение и его отсутствие интерфейса.

У меня нет идей, есть ли у вас какие-либо предложения? я не хочу кнопку, чтобы закрыть его, и я достиг, чтобы закрыть его с левой кнопкой мыши с помощью этого ответа: https://stackoverflow.com/a/15711724/3297005

, но тот до сих пор не совсем то, что я хотел.

Лучшим решением было бы это:. $ ('# расти') MouseDown (функция (событие) {...}

Couse я не знаю, какой-либо другой способ, чтобы проверить, если кнопка нажата, была .. кнопка правой кнопкой мыши

Я надеюсь, что кто-то имеет представление

спасибо, ребята


Edit:

Спасибо за ваши предложения.

После ваших комментариев я попытался использовать: $ ("# loginForm \: growl_container"). Ready (...) и это работает. Поэтому я думаю, что это правильный путь к моему элементу.

Но:

$("#loginForm\\:growl_container").click() and 
$("#loginForm\\:growl_container").mousedown() 

все еще не работает:. '- (

Я пытался обновить их в моей панели элементов тоже, но без успеха

Я попытался кликах события с другими элементами внутри моей формы и ее работой. Я думаю, что должно быть что-то особенное с этими элементами p: growl или h: message.

+0

Вы пробовали $ ('# growl'). Click (function() { alert ('Test !?') }); Событие следует нажимать не onClick –

+0

oh, thx. Я попробовал, но его все равно то же самое :( – Zahori

ответ

0

Поскольку p:growl находится внутри h:form, вы не можете получить доступ к p:growl только по его ID.
Прикрепите идентификатор формы во время доступа к ней.

И еще одна вещь - это, по-видимому, прикрепление текста _container до конца вашего p:growl Id.
Так что если у вас есть

<p:growl id="myGrowl">...</p:growl>

то Id будет: myGrowl_container

Пример:

$("#loginForm\\:growl_container") 

А также попробовать использовать click() при использовании Jquery как один из дельных комментариев предложить ,

+0

Thanks Kishor, Я пробовал ваше решение и могу получить доступ к элементу с помощью функции ready(). Но я все еще не получаю реакцию с помощью click() или mousedown().: ( – Zahori

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