为什么我的切换只在第一次起作用?
Why does my toggle only work the first time?
我的切换功能都很好,但只是第一次。有什么问题吗?
$(".add-to-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(".is-on-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});
试试这个代码:
var selector = 'button';
$(selector).on('click', function(){
$(this).toggleClass('active');
});
.active{color:green;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="add-to-list">Hi</button>
<button class="is-on-list">there</button>
由于您仅使用该 .click 代码初始化 .click 侦听器一次,因此您第二次单击将无法正常工作。
因为代码只绑定了class上的监听器一次。
如果您要在动态添加的元素上设置侦听器,请像这样使用它
$(document).on('click', '.add-to-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(document).on('click', '.is-on-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});
我的切换功能都很好,但只是第一次。有什么问题吗?
$(".add-to-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(".is-on-list").click(function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});
试试这个代码:
var selector = 'button';
$(selector).on('click', function(){
$(this).toggleClass('active');
});
.active{color:green;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="add-to-list">Hi</button>
<button class="is-on-list">there</button>
由于您仅使用该 .click 代码初始化 .click 侦听器一次,因此您第二次单击将无法正常工作。
因为代码只绑定了class上的监听器一次。
如果您要在动态添加的元素上设置侦听器,请像这样使用它
$(document).on('click', '.add-to-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "is-on-list appear" );
$(this).removeClass( "add-to-list" );
});
$(document).on('click', '.is-on-list', function(){
$(this).removeClass( "appear" );
$(this).addClass( "add-to-list appear" );
$(this).removeClass( "is-on-list" );
});