Использование jQuery focus и blur для отображения и скрытия сообщения - PullRequest
2 голосов
/ 09 февраля 2012

Я нажимаю, чтобы установить focus на textbox, и как только я установил фокус, я пытаюсь отобразить простое сообщение.Затем на blur это сообщение исчезает.

Вот мой код: если я нажимаю на textbox, оно отображает сообщение, но если я нажимаю на кнопку, оно не устанавливает фокус, как я думал.

<script>
$(document).ready(function(){    
  $("#clicker").click(function(){        
    $("#T1").focus(function(){            
      $("#myFocus").show();        
    });     
  });        

  $("#T1").blur(function(){        
    $("#myFocus").hide();    
  });
});
</script>

<body>
<div id="clicker" style="cursor:pointer; border:1px solid black; width:70px;">
  Click here!
</div>
<br /><br />
<input id="T1" name="Textbox" type="text" />
<div id="myFocus" style="display: none;">focused!</div>

Ответы [ 2 ]

4 голосов
/ 09 февраля 2012

Вам нужно вызвать событие фокуса, а не определять его.Попробуйте вместо этого:

<script>
$(function() { // Shorthand for $(document).ready(function() {
      $('#clicker').click(function() {
            $('#T1').focus(); // Trigger focus
      });

      $('#T1').focus(function() { // Define focus handler
            $('#myFocus').show();
      }).blur(function() {
            $('#myFocus').hide();
      });
});
</script>
1 голос
/ 09 февраля 2012

Проблема здесь:

$("#T1").focus(function(){            
      $("#myFocus").show();        
});

Вы должны вызвать событие с помощью focus(), а не прикреплять обратный вызов с focus(function(){...}

Фиксированный код:

$(document).ready(function(){    
  $("#clicker").click(function(){        
        $('#T1').focus();
  });        

  $("#T1").blur(function(){        
      $("#myFocus").hide();    
  })     .focus(funcion(){
              $("#myFocus").show();        
          });
});
...