悬停文档不起作用 jQuery



我有两个按钮和两个列表。这是我的代码:

$(document).on('hover','.select-user-type-js',function(){
if($(this).hasClass('select-user-type_customer')){
$('#buyer').show();
$('#seller').hide();
$($this).addClass('active');
$('.select-user-type_performer').removeClass('active');
}
else{
$('#buyer').hide();
$('#seller').show();
$($this).addClass('active');
$('.select-user-type_customer').removeClass('active');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="" class="select-user-type-js select-user-type_customer active">Customer</a>
<a href="" id="seller" class="select-user-type-js select-user-type_performer">Seller</a>
<ul id="buyer">
<li><a href="#">Menu for buyer #1</a></li>
<li><a href="#">Menu for buyer #2</a></li>
<li><a href="#">Menu for buyer #3</a></li>
</ul>
<ul id="seller" style="display: none;">
<li><a href="#">Menu for seller #1</a></li>
<li><a href="#">Menu for seller #2</a></li>
<li><a href="#">Menu for seller #3</a></li>
</ul>

我需要在悬停按钮上更改卖家或买家的特定菜单。我该怎么做?我的代码不起作用。.

首先,你有 2 个id="seller"。id 应始终是唯一的。

其次,您应该使用mouseenter

第三,您在$($this)应该$(this)时有拼写错误

$(document).on('mouseenter', '.select-user-type-js', function() {
$('.select-user-type-js.active').add($(this)).toggleClass('active');
if ($(this).hasClass('select-user-type_customer')) {
$('#buyer').show();
$('#seller').hide();
} else {
$('#buyer').hide();
$('#seller').show();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="" class="select-user-type-js select-user-type_customer active">Customer</a>
<a href="" class="select-user-type-js select-user-type_performer">Seller</a>
<ul id="buyer">
<li><a href="#">Menu for buyer #1</a></li>
<li><a href="#">Menu for buyer #2</a></li>
<li><a href="#">Menu for buyer #3</a></li>
</ul>
<ul id="seller" style="display: none;">
<li><a href="#">Menu for seller #1</a></li>
<li><a href="#">Menu for seller #2</a></li>
<li><a href="#">Menu for seller #3</a></li>
</ul>

<a href="" id="seller" class="select-user-type-js select-user-type_performer">Seller</a>
---^^^^^^^-----
<ul id="seller" style="display: none;">
---^^^^^^^-----
<li><a href="#">Menu for seller #1</a></li>
<li><a href="#">Menu for seller #2</a></li>
<li><a href="#">Menu for seller #3</a></li>
</ul>

在上面的代码中,您有重复的 ID 值DOM并且DOM必须具有唯一的ID值。因此,请尝试为DOM提供不同的IDs。它会起作用。

同时从第二个UL中删除内联样式。

JSFIDDLE 链接 :https://jsfiddle.net/dipeshbeckham/qq617gs5/4/

请尝试使用jQuery on function鼠标悬停。

$(document).on('mouseover','.select-user-type-js',function(){
if($(this).hasClass('select-user-type_customer')){
$('#buyer').show();
$('#seller').hide();
$(this).addClass('active');
$('.select-user-type_performer').removeClass('active');
}
else{
$('#buyer').hide();
$('#seller').show();
$(this).addClass('active');
$('.select-user-type_customer').removeClass('active');
}
});

$(".select-user-type_customer").hover(function() {
$('#buyer').show();
$('#seller').hide();
}, function() {
$('#buyer').show();
$('#seller').hide();
});
$(".select-user-type_performer").hover(function() {
$('#buyer').hide();
$('#seller').show();
}, function() {
$('#buyer').show();
$('#seller').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="" class="select-user-type-js select-user-type_customer active">Customer</a>
<a href="" class="select-user-type-js select-user-type_performer">Seller</a>
<ul id="buyer">
<li><a href="#">Menu for buyer #1</a></li>
<li><a href="#">Menu for buyer #2</a></li>
<li><a href="#">Menu for buyer #3</a></li>
</ul>
<ul id="seller" style="display: none;">
<li><a href="#">Menu for seller #1</a></li>
<li><a href="#">Menu for seller #2</a></li>
<li><a href="#">Menu for seller #3</a></li>
</ul>

当鼠标指针悬停在类选择器元素上时,可以使用类选择器元素:

最新更新