1
({
photo:  foo.addEventListener("animationend", photoCycle, true) ||  foo.addEventListener("webkitAnimationEnd", photoCycle, true),

bio: foo.addEventListener("animationend", bioCycle, true) ||  foo.addEventListener("webkitAnimationEnd", bioCycle, true)
})[mode]

モードを評価するオブジェクトを作成しようとしています(これは文字列photoまたはになります)、それが firefoxまたは chromebioであるかどうかに応じてイベントリスナーを追加します。奇妙なことに、モードがキーの無効なラベルの構文エラーになります。animationendwebkitanimationendphotobio

4

1 に答える 1

1

この構造は、名前のないオブジェクト プロパティに値を代入しています。また、 addEventListener は両方のブラウザで有効な機能であるため、正しいイベント名を選択する or メソッドは機能しません。

これを行うコードは次のとおりです。

var fn = (mode == "photo") ? photoCycle : bioCycle;
var eventName = ((navigator.userAgent.indexOf("WebKit") != -1) ? "webkitAnimationEnd" : "animationEnd";

foo.addEventListener(eventName, bioCycle, true)
于 2012-08-31T03:28:02.887 に答える