可以在jQuery中使用if / else语句和click函数吗?

时间:2012-03-28 16:31:09

标签: jquery

我有一个带有两个不同区域形状属性的图像映射。我想要点击图片地图上的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语句吗?

2 个答案:

答案 0 :(得分: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']);
  }

}); ​

答案 1 :(得分:1)

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

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