1

ユーザーがクリックしたオブジェクトの一意の名前を返したいのですが、解決策が見つかりません。以下は、私が達成しようとしているものですが、CoffeeScriptです。

$(".class").click(function(){
    alert("You clicked on this specific element");
});

私が見つけた最良の例を以下に示しますが、各レイヤーは一意であるため、異なるレイヤーに割り当てることはできません。

layerA.on Events.Click, (event, layer) ->
    print "This layer was clicked", layer.name

各レイヤーのイベントを個別に聞くことができますが、それは DRY 原則に違反します。

4

2 に答える 2

1

私は自分でそれを理解することができました。以下に解決策を示します。

配列を作成し、すべてのレイヤー名を内部に保存します

layerArray = [layer, layer2, layer3, layer4]

クリック イベントがトリガーされたときに呼び出される関数を作成し、レイヤー オブジェクトとレイヤー インデックスを渡します。

callFunc = (layer, index) ->
    print index

配列内の各レイヤーをループし、クリックしたレイヤーを関数に渡します

for layer, index in layerArray
    layer.on(Events.Click, callFunc)
于 2015-04-13T00:25:31.520 に答える
0
$(".class").click(function(e){
    alert(e.target); // The DOM element that fired this event.
});

具体的にはhttps://api.jquery.com/click/#click-handlerを参照してください

.click( handler )
handler Type: Function( Event eventObject )
イベントがトリガーされるたびに実行する関数。

そしてhttp://api.jquery.com/category/events/event-object/

event.target
イベントを開始した DOM 要素。

于 2015-04-13T02:51:18.563 に答える