【问题标题】:How to catch mouse click on RichFaces notifyMessage element?如何捕捉鼠标点击 RichFaces notifyMessage 元素?
【发布时间】:2014-01-23 10:27:00
【问题描述】:

我有 RichFaces 通知消息元素,例如

<rich:notifyMessages sticky="true" showCloseButton="false"/>

我想实现通过鼠标单击关闭通知弹出窗口的功能。当然我可以使用 showCloseButton="true",但是我觉得弹出窗口右上角的小十字不太好用。有什么办法可以捕捉到 notifyMessage 元素上方的鼠标点击事件?

RichFaces 版本为 4.2.1.Final

谢谢。

【问题讨论】:

    标签: javascript jsf richfaces


    【解决方案1】:

    可能最简单的是:

    <rich:notifyMessages … onclick="$(this).find('.rf-ntf-cls').triggerHandler('click');"/>
    

    RichFaces 使用 Pines notify 插件,但消息似乎不支持这种“远程”直接关闭。

    【讨论】:

    • 感谢您的回答!实际上&lt;rich:notifyMessages/&gt; 本身不会产生可点击元素,在代码中它只是&lt;span class="rf-ntf-msgs" ... &gt;&lt;/span&gt; 没有内容或任何可点击区域。生成的 div 像 &lt;div class="rf-ntf-cls" ... &gt;...&lt;/div&gt; 这样的弹出窗口放在页面末尾,并且包含绝对位置,我们应该以其他方式插入点击处理程序。
    • 你是对的,它不会产生可点击的元素,但这没关系。 @onclick 应用于生成的消息,而不是空范围。
    【解决方案2】:

    用户Makhiel 是正确的方式。实际上,您应该为具有类 rf-ntf-cls 的 div 添加单击处理程序,所有使用的类的描述可以在 here 找到。

    主要的问题是这样的弹出元素可以在页面准备好之后添加,所以你应该在添加弹出之后添加点击处理程序。

    在我的例子中,我调用了函数

    jQuery('.rf-ntf-cnt').click(function(){jQuery(this).css({visibility:'hidden'})})
    

    在产生弹出窗口的调用结束时。我不是 js 的大师,我不确定这是关闭弹出窗口的最佳方式,但我认为这个想法很明确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-04
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多