デザイナー/開発者のワークフローの観点から、グッド プラクティスを明確にしたいと思います。
CSS と JS が同じ属性を使用する必要がある根本的な理由はありません。html タグに関連付けられたイベントは、それに適用されるスタイルとは関係がないため、それらを分離すると、開発者とデザイナーの両方のメンテナンスに役立ちます。
そして私の質問: 2 つの間に厳密な分離がないのはなぜですか? JavaScript のカスタム属性を自由に使用でき、CSS の ID、クラス、および HTML タグ名を保持できることは理解していますが、jQuery のすべてがそれらを使用するように作られているようです。例えば :
$("#myid").html("Test");
$("#myid").addClass("clickable");
$("#myid").removeClass("clickable");
if($("#myid").hasClass("clickable")) var clickable = true;
など なぜそうですか?
補足質問: JavaScript のカスタム属性のみを使用する場合、パフォーマンスの問題はありますか?
$('[event="clickable"]').html("Test");
スタックオーバーフローで言及されているRoy Tomeij http://roytomeij.com/2012/dont-use-class-names-to-find-HTML-elements-with-JS.htmlのこの記事:JSとCSSのIDとクラスを分離しているようですJavascript でクラスを使用しないようにというアドバイスですが、これまでに見つけたのはこれだけです。議論を広げたいと思います。
一意の ID と複数のクラスという 2 つの項目を持つことは、CSS と JavaScript の両方にとって価値がありますが、考えてみると、次のような div を持つことができます。
<div css_id="mydiv" css_class="green" js_id="unique_element" js_class="other_event">
および架空の CSS プロパティと jQuery 関数 (次のようなもの)
div#mydiv{margin_top:20px;} //reads from css_id attributes
div.green{color:green;} //reads from css_class attributes
$("#unique_element").click(function(){alert("Clicked!")}) //reads from js_id attributes
$(".other_event").click(function(){alert("Congratulations!")}) //reads from js_class attributes
そして同じように
$("#unique_element").addClass("clickable2"); //add a value to the js_class attribute
皆さん、ありがとうございました!チームのワークフローを改善する方法を模索するためだけに、すべてを再発明するつもりはありません。