在使用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的情况下更新类。当然,代码看起来有点麻烦,但我不介意。
问题:
修改
最后一个问题:
巴拉
答案 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的选择器。