2012-03-28 92 views
0

我有一个具有两个不同区域形状属性的图像映射。我想根据点击的形状属性在图像地图上点击很棒的Google分析跟踪事件。if/else语句可以在jQuery中使用点击功能吗?

我已经试过这样:

$('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']); 
    } 

}); ​ 

但是,这是行不通的。一个if else语句可以用于点击功能吗?

+0

你有错误信息吗? – talnicolas 2012-03-28 16:32:46

+1

不能对'area'标签使用'val()'方法......应该做什么? – charlietfl 2012-03-28 16:34:42

回答

4

问题在于您的使用val()shapearea标记的属性。

以下应该工作

$('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 2012-03-29 08:04:06

1

它看起来像你只叫你的函数如果val =形状。然后,如果val是rect或poly,那么您正在测试相同的元素。它永远都不是,因为你只是澄清它的形状。也许你应该使用.attr或.has来选择只是被点击的形状而不是.val,然后继续测试该形状的val是rect还是poly。

你可以发布几个区域的HTML,以便我可以确认我的假设吗?