我有两个按钮和两个列表。这是我的代码:
$(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>
当鼠标指针悬停在类选择器元素上时,可以使用类选择器元素: