将文本附加到类名的末尾,以明确jQuery正在利用这些类

时间:2010-01-09 05:39:46

标签: jquery css css-selectors

在使用jQuery开发设计时,我偶然发现了一个问题。如果jQuery没有在我的HTML中的类上做选择器,我怎么知道,而不必查看javascript?也就是说,如果我想将类更改为其他类,我无法知道该类是否在其他地方使用,这使我很难轻松更新设计。

所以,我的想法是复制一个类名,并在它被使用时将文本(例如“-jquery”)附加到它的末尾。这样,如果我想在未来改变设计,我可以自由地做,我会立即知道页面上的哪些元素正在我的javascript中使用。

例如,假设我有一个带有类的简单div:

<div class="header">This is a test</div>

javascript对div做了一些事情:

$(".header").click(function() { 
     $(this).slideUp();
});

我的想法是将其改为:

<div class="header header-jquery">This is a test</div>

$(".header-jquery").click(function() { 
     $(this).slideUp();
});

从而分离我的CSS和jQuery类,使得更容易识别jQuery使用的元素,并允许我在不影响我的javascript的情况下更新类。当然,代码看起来有点麻烦,但我不介意。

问题:

  1. 这是一种常见做法吗?
  2. 我应该这样做吗?
  3. 有没有更好的方法来实现我想要的目标?
  4. 修改

    最后一个问题:

    1. 是否有一个Visual Studio插件可以为我做这个?也就是说,如果它注意到我正在编辑jQuery中正在使用的元素的类,它会警告我吗?或者甚至可以对类名进行颜色编码,让我知道它正被使用。 IDE中的这样一个功能将是杀手......
    2. 巴拉

2 个答案:

答案 0 :(得分:3)

我得到你所说的和你想要帮助的东西。基本上,你想要在原始HTML中添加一个类(不是动态的),所以知道你以后是否会改变它,它是由jQuery使用的。

  

1。这是一种常见做法吗?

不,或者至少不是我见过的。看起来它只会使你的代码混乱。

更新:但是,正如您在评论中提到的那样,在您的HTML编码器无法使用jQuery的环境中,它会提醒他们在编辑该类时可能会破坏它们。然而,事实上,与大多数jQuery代码一样,如果他触及该元素中的任何 HTML,他可能会破坏代码,而不仅仅是类。

  

2. 我应该这样做吗?

我个人不会。如果有的话,您可以添加rel标签,因为它对任何元素都有效:

<div class="header" rel="jquery"></div>

但即使这是rel属性的“错误使用”。

  

3. 有没有更好的方法来实现我想要的目标?

是的!在Web项目主JavaScript文件的顶部放置了这个:

/************ Classes and Selectors In Use **************

   .header
   form .special
   #footer p

*********************************************************/

当您去更改元素时,只需快速扫描该文件的顶部即可。此外,如果您正在缩小JS的生产(您应该这样做),那么所有这些都将被删除,因此不会增加文件大小。

正确的方式?

可能采取额外工作的最佳方式,但不是我建议的解决方案的所有记录保存,是进行自动化测试。因此,如果您不小心更改了某个类,那么当您运行测试时,它们将在之前通过的地方失败。

您可以在此处阅读:Automated Unit Testing with JavaScript&lt; - 我个人认为接受答案以下的答案可提供更多内容

答案 1 :(得分:1)

如果您只想要一个非常具体的元素,而不是使用一个类使用id。如果您正在寻找属于某个特定元素的子元素的特定元素,请在该父元素上添加一个id。我不会添加一个类只是用作javascript的选择器。