同一个
标记有 2 个类。 .bt1 类在 html 代码中设置为默认值。
我需要这个 p 标签来更改其单击时的类并保存它,当我单击这个 p 标签时,我需要它是“bt1i”类并且“bt1i”onclick 函数开始工作。有人可以帮助我理解为什么它不起作用以及错误在哪里。据我了解,当我更改 jquery 代码中的类时,它不会保存到 jquery 的下一次调用。
jQuery(document).ready(function(){
$(".slide1").animate({marginRight:"-446px"}, 500 );
$(".commonslide").animate({width:"206px", opacity:0}, 400 );
$(".mainarea").animate({marginRight:"206px"}, 500);
$(".bt1").click(function(){
$(this).toggleClass("bt1i");
$(".mainarea").animate({marginRight:"652px"}, 400);
$(".sidebar").animate({marginRight:"0px"}, 400 );
$(".slide1").animate({marginRight:"0px"}, 400 );
$(".commonside").animate({width:"652px", opacity:1}, 400 );
});
$(".bt1i").click(function(){
$(".slide1").animate({marginRight:"-446px"}, 500 );
$(".commonside").animate({width:"206px", opacity:1}, 400 );
$(".mainarea").animate({marginRight:"206px"}, 500);
$(this).toggleClass("bt1");
});
});
最佳答案
您需要更改 .bt1i
处理程序才能通过 .live()
进行工作,像这样:
$(".bt1").live('click', function(){
//and...
$(".bt1i").live('click', function(){
当您执行$(".bt1i").click(...)
时,它会查找bt1i
类的元素当时 并将一个 click
处理程序绑定(bind)到它们...您要切换类的元素没有 then 类。使用 .live()
它将监听具有该类的元素,无论它们何时添加...选择器在事件发生时进行评估。
作为旁注,如果您希望其按预期运行,您还需要关闭上一个类,只需将两者添加到每个 .toggleClass()
中即可。调用,如下所示:
$(this).toggleClass("bt1 bt1i");
这将有效地交换元素上的类。
关于jquery css类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242754/