Blur Event Does not get Fired in IE7 and IE6

后端 未结 6 1242
不思量自难忘°
不思量自难忘° 2021-01-02 22:28

I have a dropdown Menu where in a div is clicked and List is shown.

On focus out I am supposed to hide the list(i.e. when the user clicks or focuses on some other e

相关标签:
6条回答
  • 2021-01-02 22:51

    I have set the tabIndex property for the div to be focusable and moreover if i comment the height the blur event is fired so I assume thats not the problem.

    0 讨论(0)
  • 2021-01-02 22:53

    Try:

    $('.selected_option').bind('blur', function(){           
              alert('blurred');
    });
    

    Also you can make another trick - handle all mouse clicks or/and focus events and if some another control is selected, then your own is blurred (of course if it was selected previously).

    0 讨论(0)
  • 2021-01-02 22:57

    The IE-proprietary focusout event worked for me:

    $('.selected_option').bind('focusout', function(){
        alert('focusout');
    });
    

    Again, this is proprietary (see quirksmode) but may be appropriate if it solves your problem. You could always bind to both the blur and focusout events.

    0 讨论(0)
  • 2021-01-02 22:57
    onkeypress="this.blur(); return false;"
    

    its works fine on all IE versions

    0 讨论(0)
  • 2021-01-02 23:01

    Try using an anchor tag instead of a div since these are naively focusable. You can set the href of the anchor to "javascript:void(0)" to prevent it from actually linking to a pageand use the css property "display: block" to make it render like a div. Something like this:

    <html>
      <head>
        <title>Exploring IE</title>
        <style type="text/css">
          /** Exploring IE**/
          .selected_option
          {
            display: block;
            height:18px;
          }
        </style> 
        <script type="text/javascript" src="jquery-1.3.2.min9919.js"></script>
        <script type="text/javascript">
          $().ready(function(){
            $('.selected_option').blur(function(){
              alert('blurred');
            });
          });
        </script>
      </head>
      <body>
        <a href="javascript:void(0)" class="selected_option">anywhere in the page</a>
      </body>
    </html>
    

    Haven't tested this, but I think it should work.

    0 讨论(0)
  • 2021-01-02 23:05

    First realize that focus and blur events are only supported on focusable elements. To make your <div>s focusable you need to look at the tabindex property.

    0 讨论(0)
提交回复
热议问题