1

私のコードは次のようになります。

<div id="left" style="float:left; width:100px; margin-right:10px;">
<input id="first" value="something">
</div>
<div id="right" style="margin-left:20px; float:left; width:200px;">
<input id="second" value="something">
<input id="third" value="something">
<input id="fourth" value="something">
</div>

jquery:

$(function() {

$("#right").focusin(function() {
      $( "#left" ).animate({
        width: "200px"
      }, 500 ); 
      $( "#right" ).animate({
        width: "100px"
      }, 500 );   
});
$("#right").focusout(function() {
      $("#left").animate({
        width: "100px"
      }, 500 ); 
      $("#right").animate({
        width: "200px"
      }, 500 ); 
});

})

しかし、右のdivの入力間をクリックするとフォーカスイン/アウトが呼び出されますが、これを防ぐ方法は?

デモ: https://jsfiddle.net/swfzmdfd/

4

2 に答える 2

0

2 番目の id をクリックした後に 3 番目の id をクリックすると、基本的に両方のイベントがトリガーされ、id の下の要素に対して focusin と focusout がトリガーされます。それが理由です。

それを避けたい場合は、代わりにクリックを追加できます/

$("#right").click(function() {

// do this 
});
$("#left").click(function() {
 // do this 
});
于 2016-11-07T00:27:05.393 に答える