2012-03-28 5 views
0

私は、2つの異なるエリアシェイプアトリビュートを持つイメージマップを持っています。クリックしたシェイプの属性に応じて、GoogleアナリティクスのトラッキングイベントonClickをイメージマップに追加します。jQueryのクリック機能でif/else文を使用できますか?

$('area').val('shape').click(function(e) { 
    e.preventDefault(); 
    if ($(this).val() == 'rect') { 
     _gaq.push(['_trackEvent', 'test category', 'test action', 'rect shape clicked']); 
    } 

    else if ($(this).val() == 'poly') { 
     _gaq.push(['_trackEvent', 'test category', 'test action', 'poly shape clicked']); 
    } 

}); ​ 

をしかし、これは動作しません:

私はこれを試してみました。 Click関数でif else文を使用できますか?

+0

どこかにエラーメッセージがありますか? – talnicolas

+1

'area'タグに' val() 'メソッドを使用することはできません...どうしたらいいのですか? – charlietfl

答えて

4

val()の問題があります。 shapeareaタグの属性です。

valは形状を=場合にのみ、あなたの関数を呼び出しているように見えます

$('area').click(function(e) { 

var shape=$(this).attr('shape'); 
    e.preventDefault(); 
    if (shape == 'rect') { 
     _gaq.push(['_trackEvent', 'test category', 'test action', 'rect shape clicked']); 
    } 

    else if (shape == 'poly') { 
     _gaq.push(['_trackEvent', 'test category', 'test action', 'poly shape clicked']); 
    } 

}); ​ 
+0

ありがとう、私はどこが間違っていたのか分かります。修正されたコードを提供する巨大な助け。 :) – JayDee

1

を動作するはずです以下。次に、valがrectまたはpolyの場合、同じ要素をテストします。あなたはそれが形であることを明らかにしただけなので、常にそうではありません。おそらく、.attrまたは.hasを使用して、.valではなくクリックされた図形のみを選択し、その図形のvalがrectまたはpolyのいずれかであることをテストする必要があります。

私は仮定を確認できるように、いくつかの領域のHTMLを投稿できますか?

関連する問題