2012-03-03 5 views
2

私はマウスオーバーとマウスアウトイベントがトリガラファエルキャンバス内の要素の特定の属性にアクセスして更新しようとしています。..のアクセス属性(ATTR)のドキュメントがあるので、mouseoverイベント

をトリガスパース、私はしばらくの間これを苦労してきました。

次のコードは、Object #<SVGCircleElement> has no method 'attr'

 $(circle.node).mouseover(function (e) { 
      e.target.attr({ 'opacity': 0.2, 'fill': 'blue', 'stroke': 'white' }); 
     }); 

(非)機能コードのエラーで失敗すると、ここに提供されています:http://jsfiddle.net/agarcian/mDnAb/3/

任意の助けを大幅に理解されるであろう。

+1

'e.target'はDOM要素ではなく、jQueryオブジェクトです。これは 'this'と似ています。 jQueryメソッドを使用する場合は、最初にjQueryに渡す必要があります。答えは、ないコメントだ –

+0

:P – ThiefMaster

+0

の可能重複[attrが定義されていません](http://stackoverflow.com/questions/6845087/attr-is-undefined) –

答えて

4

e.targetはプレーンなDOM要素であり、まだjQueryでラップされていないため、$(e.target).attr(...)を使用する必要があります。それが正常に動作します。この変更に伴い

http://jsfiddle.net/ThiefMaster/mDnAb/4/

ところで、あなたは、2つの独立したイベントの代わりに.hover()を使用することができます。http://jsfiddle.net/ThiefMaster/mDnAb/5/

+0

素晴らしいです。これはまさに私が探していたものです。私が言ったように、ドキュメンテーションは非常に疎です...あなたの助けをありがとう。 – agarcian

+0

@agarcian:[documentation](http://api.jquery.com/event.target/)は、それがDOM要素であると言っています:*イベントを開始したDOM要素*。 –

関連する問題