Javascript JS中未定义的变量

Javascript JS中未定义的变量,javascript,Javascript,我从一个例子中复制了一些代码,但我不确定我是否理解它,它给了我一个错误,这在我第一次使用is时并没有发生 在本页上: 我得到一个错误:第84行没有定义x 我不太确定x应该在那里。感谢您的帮助,特别是帮助我了解这里发生的事情:) 代码如下: function getCall(fn, param) { return function(e) { e = e || window.event; e.preventDefault(); // this might let

我从一个例子中复制了一些代码,但我不确定我是否理解它,它给了我一个错误,这在我第一次使用is时并没有发生

在本页上:

我得到一个错误:第84行没有定义x

我不太确定x应该在那里。感谢您的帮助,特别是帮助我了解这里发生的事情:)

代码如下:

function getCall(fn, param)
{
   return function(e)
   {
      e = e || window.event;
      e.preventDefault(); // this might let you use real URLs instead of void(0)
      fn(e, param);
   };
}

window.onload = function()
{
   var a = document.getElementById("mylink");
   a.onclick = getCall(deleteHike, x );
};

在您的代码中,这里的
x
是一个参数,它将被传递到函数
deleteHike
中,并且应该被定义,或者如果您不想要一个参数,而不知道
deleteHike
在这里做什么,则将其保留为
null


当页面加载到元素
myLink
时,代码将连接一个事件。单击该元素时,甚至来自浏览器的信息以及一个额外参数(
x
)都将被传递到名为
deleteHike
的函数中。这就解释了吗?

您在onload方法中调用函数,但它不知道x的值是什么,因为它没有在Javascript中指定。我注意到hike id作为参数包含在您的url中。试试这个:

window.onload = function()
{
   var a = document.getElementById("mylink");
   a.onclick = getCall(deleteHike, gup("hike_id")); //notice this changed
};

//Add this function in the js
function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

我还注意到A标记在dom上得到了正确的绑定,我不确定你是硬编码还是什么,但是如果你的视图是在服务器上动态生成的,那么这一切都是无关的,你不需要在js中包含给你带来问题的行,只需删除它,在这种情况下

包含实际的代码。是的,你从来没有在任何地方声明过
x
。那么,有什么神秘之处呢?该函数中的变量“x”显然没有定义,所以…@Pointy是的,我意识到了这一点,但奇怪的是,相同的代码在不同的脚本中工作,所以我认为可能x变量不是问题+1我希望某种类型的
hikeID
是参数。是的,这非常有帮助。但是我不确定为什么这个错误会发生在那个页面上:uncaughtreferenceerror:x没有定义-这似乎是破坏脚本的原因。正如其他人所评论的,在你的代码中,
x
刚刚从哪里出来。它从来没有定义过,所以它不知道如何处理它。找出
deleteHike
的作用以及它对参数的需求,然后用它替换
x
。在使用firebug查看站点之后,我非常确定他需要传递唯一的hike id,这可以在URL附带的“hike\u id”参数中找到。别忘了链接你的源代码。您的
gup
函数来自。还有比公认的解决方案更简洁、更有效的方法,因为公认的解决方案具有最好的可视性(被接受),所以实际上只有最多的赞成票。