Loading ...
Sorry, an error occurred while loading the content.
 

Re: [ydn-javascript] YUI Dialog: Capturing the close event

Expand Messages
  • Eric Miraglia
    Jay, You can listen for the hide event (inherited from the Module class): http://developer.yahoo.com/yui/docs/YAHOO.widget.Module.html#event_beforeHideEvent We
    Message 1 of 5 , Jan 2, 2009
      Jay,

      You can listen for the hide event (inherited from the Module class):


      We don't expose an event for hiding via the close icon specifically.  However, if you are looking for that specific action, you could do this:

      YAHOO.util.Event.on(YAHOO.util.Dom.getElementsByClassName("container-close", "a", "panel1"), "click", function() {alert("close button was clicked");});

      Replace "panel1" with the id that contains your panel.  Note that arguments 2 and 3 in the getElementsByClassName method are both optional, but the function runs much more quickly if you provide them.

      Regards,
      Eric



      On Jan 2, 2009, at 9:59 AM, jsmith200046 wrote:

      This should be simple, but I just haven't been able to find this in 
      the online docs:

      I've created a dialog with:

      var myDialog = new YAHOO.widget. Dialog("mydialog ", { modal: true });
      etc...

      I would like to do some processing if the user clicks the "X" on the 
      title bar, but I can't figure out how to get that event.

      Would someone show me how to intercept that event?

      Thanks,
      Jay


    • jsmith200046
      Thanks Eric, That was perfect! I just had to add: ...,this, true); to the end of that call and I got everything I needed. ...
      Message 2 of 5 , Jan 2, 2009
        Thanks Eric,

        That was perfect! I just had to add:

        ...,this, true);

        to the end of that call and I got everything I needed.

        --- In ydn-javascript@yahoogroups.com, Eric Miraglia <miraglia@...>
        wrote:

        > We don't expose an event for hiding via the close icon specifically.
        > However, if you are looking for that specific action, you could do
        this:
        >
        >
        YAHOO.util.Event.on(YAHOO.util.Dom.getElementsByClassName("container-
        > close", "a", "panel1"), "click", function() {alert("close button was
        > clicked");});
        >
        > Replace "panel1" with the id that contains your panel. Note that
        > arguments 2 and 3 in the getElementsByClassName method are both
        > optional, but the function runs much more quickly if you provide
        them.
        >
        > Regards,
        > Eric
      • morekaos
        The solution below didn t look right, kind of hokey, and at the end of the day, I could not get this to work. I searched high and low for the real solution.
        Message 3 of 5 , Oct 25, 2009
          The solution below didn't look right, kind of hokey, and at the end of the
          day, I could not get this to work. I searched high and low for the real
          solution. The YUI Panel/Dialog Site was not as helpful as I would have
          hoped, and the API docs defined it possible, but require one to be an expert
          in YUI syntax (which I am not).

          Eventually I found the answer that I was looking for in the YUI Cheat
          Sheets.

          The syntax to capture a close event coming off a Panel/Dialog when you click
          the X is:

          var myDlg = new YAHOO.widget.Dialog('myDialog');
          myDlg.hideEvent.subscribe( function( ){<code to execute when the
          dialog/panel closes here>};);



          jsmith200046 wrote:
          >
          > Thanks Eric,
          >
          > That was perfect! I just had to add:
          >
          > ...,this, true);
          >
          > to the end of that call and I got everything I needed.
          >
          > --- In ydn-javascript@yahoogroups.com, Eric Miraglia <miraglia@...>
          > wrote:
          >
          >> We don't expose an event for hiding via the close icon specifically.
          >> However, if you are looking for that specific action, you could do
          > this:
          >>
          >>
          > YAHOO.util.Event.on(YAHOO.util.Dom.getElementsByClassName("container-
          >> close", "a", "panel1"), "click", function() {alert("close button was
          >> clicked");});
          >>
          >> Replace "panel1" with the id that contains your panel. Note that
          >> arguments 2 and 3 in the getElementsByClassName method are both
          >> optional, but the function runs much more quickly if you provide
          > them.
          >>
          >> Regards,
          >> Eric
          >
          >
          >
          >
          >

          --
          View this message in context: http://www.nabble.com/YUI-Dialog%3A-Capturing-the-close-event-tp21254850p26051588.html
          Sent from the ydn-javascript mailing list archive at Nabble.com.
        Your message has been successfully submitted and would be delivered to recipients shortly.