如何在弹出窗口打开但不使用JavaScript时调用JavaScript函数?

时间:2015-09-18 18:38:36

标签: javascript

我在父页面中定义了一个PrimeFaces p:dialog的弹出窗口。它是使用PF('myDialog').show()打开的。

我还有一个简单的JS函数,当span内有textarea个事件时,它会更新弹出窗口中的onkeyup

<p:inputTextarea id="comment" ... onkeyup="textCounter(this,'charactersRemaining',1000);"/>

刷新每个文本区域更改的charactersRemaining范围,这意味着在您点击UI组件中的某个键之前,没有显示剩余计数。但是,我想在第一次加载弹出窗口时触发textCounter JS函数,以便它始终存在。我想要一种方法来做这个,因为我对JS来说比较新。

简而言之,我怎么说,在textCounter('commentField','charactersRemaining',1000);开启时运行我myDialog

1 个答案:

答案 0 :(得分:1)

您可以调用textCounter(&#39; commentField&#39;,&#39; charactersRemaining&#39;,1000);在PF之后(&#39; myDialog&#39;)。show();但是如果你想要,你可以触发一个事件并像这样消耗它:

HTML <div id='myDialog'>This is my dialog</div>

JAVASCRIPT

$( document ).ready(function() {    
   (function ($) {
     $.each(['show', 'hide'], function (i, ev) {
       var el = $.fn[ev];
       $.fn[ev] = function () {
        this.trigger(ev);
        return el.apply(this, arguments);
       };
     });
   })(jQuery);



   $('#myDialog').on('show', function() {
     alert('Show event fired');
     textCounter('commentField','charactersRemaining',1000);
   });

   $('#myDialog').on('hide', function() {
     //Do something when myDialog is hidden
   });

   $('#myDialog').show();

});