带参数的全局变量函数

时间:2012-12-15 13:12:33

标签: javascript global

我有:

HTML:

<a href="" class="add-to-cart-button" onClick="javascript:addToCart([@id]);">Add to cart</a>

和Javascript:

var pid;
function addToCart(id){
pid = id;
}
alert(pid);

它返回'unidentified' 如何将addToCart(id)中的值赋给pid?谢谢!

2 个答案:

答案 0 :(得分:3)

您在加载页面时未定义pid。要显示实际值,您必须将警报放在函数中:

var pid;
function addToCart(id){
    pid = id;
    alert(pid);
}

DEMO

答案 1 :(得分:1)

您的JavaScript在页面加载期间执行

  1. 声明名为pid 的变量(仅声明,未定义值)
  2. 声明并定义一个名为addToCart 的函数(声明并定义,而不是执行......)
  3. 警告声明的pid变量(尚未定义为任何值)
  4. 此外,在页面加载期间,您的标记被解析,并且JavaScript引擎定义(但不执行)一个点击处理函数,当元素为时,它将调用addToCart() 点击

    点击元素时,addToCart将会运行,为pid提供一个定义,这是在页面加载期间发生alert后的全部内容。< /强>

    设置addToCart后,在pid功能中发出警报,会显示正确的值。

    另外,请参阅有关@id的评论和解答。

    作为补充说明,您在javascript:属性开头使用的onclick伪协议在该attr中不合适,并且在过去适用的地方已被弃用(例如在href attr)。你应该删除它并停止使用它。