我有一个带有两个不同区域形状属性的图像映射。我想要点击图片地图上的Google Analytic跟踪事件,具体取决于点击的形状属性。
我试过这个:
$('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 :(得分:4)
使用val()
时出现问题。 shape
是area
代码的属性。
以下应该工作
$('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']);
}
});
答案 1 :(得分:1)
如果val = shape,看起来你只是调用你的函数。然后,如果它的val是rect或poly,则测试相同的元素。它永远不会是因为你只是澄清它是形状。也许您应该使用.attr或.has来仅选择被点击的形状而不是.val然后继续测试该形状的val是rect还是poly。
您可以发布几个区域的HTML,以便我确认我的假设吗?