jquery css类问题

标签 jquery css class

同一个

标记有 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/

相关文章:

javascript - jQuery UI 自动完成 - _renderItem 在第一次粘贴时不会触发

javascript - 基于单元格值的颜色 dgrid 单元格

python - 使用相同参数重复初始化类的最佳实践(金字塔)?

html - 我的页脚比应有的尺寸大了一倍

css - 当引用 https 服务器上的 css 文件时,Angular 获取 CORS No Access-Control-Allow Origin

c# - 派生类列表上的泛型函数

class - Powershell 类

jquery - 使用 jQuery 按数据属性操作选项

javascript - JS Fullcalendar 背景颜色未设置

php - 如何使用ajax在数据库中插入复选框值......我正在尝试下面的代码不工作