私はApache CordovaとAngularJSで書いているパズルアプリを持っています。パズルはグリッドで構成され、各グリッドには複数の「ライト」があります。AngularJSのクラスを複数の要素に変更する
あなたは光の一方をマウスオーバーすると、特定の領域が点灯します。私は標準的なjQueryでうまく動作していますが、マウスオーバーイベントはクラスにバインドされていますが、AngularJSで動作させるのに苦労しています。私はプロジェクトにフルjQueryを含めることができますが、それは不正行為のように感じます。
これまでのところ、私は次のディレクティブがあります - HTMLは次のように見ていると
app.directive('etkHighlight', function() {
return {
link: function (scope, element, attr) {
element.on("mouseenter", function() {
var id = attr.cage;
var el = angular.element(document).find(id);
el.addClass("etk-light-on");
console.log("enter")
})
element.on("mouseleave", function() {
var id = attr.cage;
console.log("enter")
})
}
}
});
を: - 私はOK、クラスを変更する必要があるオブジェクトのIDを取得しています
<div class="box">
<div class="etk-key" id="cage-t">T</div>
<div class="etk-light etk-base-left etk-light-off" data-cage="cage-k" etk-Highlight>k</div>
<div class="etk-light etk-base-right etk-light-off" data-cage="cage-m" etk-Highlight>m</div>
</div>
、およびelにはの何かが入っていますが、addClassは実際にクラスを追加できません。
私は間違っていますか?これはこれに近づける正しい方法ですか?理想的には、すべてのライトのマウスオーバーのクラス変更を管理するために使用できるものが必要です。
Plnkr: - lのラベルhttp://plnkr.co/edit/JjwucC3HECN9Mmm4S3Ib NBのみ点灯し、一番上の行に&メートルのKは、私はあまりにも問題が定義されていませんでしたが実現しましたディレクティブ
UPDATEを使用するように設定されています。私がマウスオーバーすると、例えば 'l'と書かれた光が、その光のクラスと、右と下にある 'L'の両方のクラスを変更したいと思っています....
デモを追加することはできますか? – RRK
クラス要素を追加していますか?あなたはng-class = "{'green':item = 1}のようにng-class =" {'class':result/expresion} "を使用できません" – MrNew