5

2 番目のホバー機能をトリガーするにはどうすればよいですか?

$('#adm1n-toolbar').hover(
    function() {
        ...
    },
    function() {
        ...
    }
);

$('#adm1n-toolbar-content select').change(function(e) {
    ...
    $('#adm1n-toolbar').trigger('mouseout');
});

mouseout または mouseleave は機能しません。

4

2 に答える 2

10

舞台裏で使用するmouseleaveものを使用すると、問題なく動作しますhover

デモ:

$('#adm1n-toolbar').hover(
  function() {
    console.log('in');
  },
  function(e) {
    $(this).fadeOut('fast').fadeIn('fast');
  }
);

$('#adm1n-toolbar-content select').change(function(e) {
  $('#adm1n-toolbar').trigger('mouseleave');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="adm1n-toolbar">toolbar</div>

<div id="adm1n-toolbar-content">
  <select multiple>
    <option>option 1</option>
    <option>option 2</option>
    <option>option 3</option>
    <option>option 4</option>
  </select>
</div>

于 2012-05-17T13:33:17.193 に答える
8

の 2 番目の関数を外部からターゲットにすることはできませんhover()。ただし、 ashover()は単なるショートカットでmouseenter()あり、mouseleave()必要に応じてトリガーできるように個別に割り当てることができます。これを試して:

$('#adm1n-toolbar')
    .mouseenter(function() {
        // ...
    })
    .mouseleave(function() {
        // ...
    });

$('#adm1n-toolbar-content select').change(function(e) {
    $('#adm1n-toolbar').trigger('mouseleave');
});
于 2012-05-17T13:26:25.567 に答える