.removeAttr jQuery

时间:2012-09-12 12:57:59

标签: jquery class

我在下面有这段代码:

<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
<style type="text/css">
  p { cursor: pointer; font-size: 1.2em; }
  .selected { color:red; }
</style>
  <script>
  $(document).ready(function() {
    $('p').click(function () {
      $(this).removeClass('selected', 1000);
      $(this).removeAttr('class');
      //$(this).removeAttr('style');
    });
  });
  </script>
</head>
<body style="font-size:62.5%;">

<p class="selected">Click me to remove 'selected' class.</p>
<p class="selected">Click me to remove 'selected' class.</p>
<p class="selected">Click me to remove 'selected' class.</p>

</body>
</html>

因此,当我点击任何<p>时,该类会被删除,并且属性类也会被删除。然而,会发生的是代码样式=“”被注入<p>的内联。

为什么会发生这种情况,如何将其删除?点击<p>元素后,对我来说<p>的新定义应仅为<p>some text goes here</p>

1 个答案:

答案 0 :(得分:3)

为什么风格是因为jquery-ui removeclass(),虽然它不在文档中似乎有更多的参数(参见soruce),你可以使用它来使用回调在动画完成后运行:

$(document).ready(function() {
    $('p').click(function () {
        $(this).removeClass('selected', 1000, function() {
            $(this).removeAttr('style').removeAttr("class");
        });
    });
});

(我不确定你为什么要这样做)。

演示:http://jsbin.com/opucon/2/(结果演示)