繁体   English   中英

如何从区域href触发JS函数

[英]How to fire JS function from area href

我有一个带有这样的链接映射的图像(在PHP中生成):

        <map name="map_bc-03" id="map_bc-03">
          <area shape="circle" coords="166,28,12" href="#" onClick="changeCount('plus','bc-03');">
          <area shape="circle" coords="166,82,11" href="#" onClick="changeCount('minus','bc-03');"> 
        </map>

我正在尝试触发一个名为changeCount(type,product)的JS函数。

JS函数的目的是获取HTML元素的当前值( <span> )并将其加1(x + 1)。 JS函数如下所示:

function changeCount(type,product)
{
    if ( type == "plus" )
    {
         $("#count_" + product).val() = $("count_" + product).val() + 1;
    }
}

问题是1 / JS函数未使用错误消息“ ReferenceError:未定义changeCount”触发,我不明白为什么这么清楚地定义了函数。

问题2 / JS函数本身导致“ ReferenceError:postfix操作中无效的左侧表达式”错误(即使未触发)。

任何帮助,不胜感激!

val()用于表单元素。 对于<span>您需要html()text() 尝试这个

function changeCount(type,product){
    if ( type == "plus" ){
      $("#count_" + product).text(function(index, val){
        return parseInt(val)+1;
      });
    }
}

使用val(value); 而不是使用val() = value;

重要的是

如果目标选择器是输入或任何表单元素,则使用.val() 否则,如果它是divspan或任何其他非格式元素中的任何一个,则使用.text()而不是.val() 因为,非形式元素没有任何值。

根据您的问题,您的目标是<span> 因此,我认为您必须使用.text()

function changeCount(type,product)
{
  if ( type == "plus" )
    {
      $('#count_'+ product).text(Number($('#count_' + product).text()) + 1);
    }
 }

它应该是

$("#count_" + product).val() = parseInt($("#count_" + product).val()) + 1;

获取值时缺少“#”,应使用parseInt。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM