2011-10-19 201 views
0

我正在用Javascript写一个日历,我想知道如何让日历根据用户点击的链接调用自己。此时该函数的名称为foo()从另一个函数调用函数

底部有三个不同的div链接,根据给定的情况显示。 (工作)日历是用PHP编写的,所以我试图将它移植到Javascript中。做得相当好,但有一些需要熨平的错误。问题是我只需模仿PHP日历的行为,该日历将POST值发送到下一个或上一个按钮,以用作显示哪个月的信息(等等)。

我试过这两种不同的方式与JavaScript日历,第一次使用JavaScript无效(onclick)链接调用日历功能,但显然你不能将变量传递给一个函数与onclick。另一种方式是使用dom对象,但我面临一个新的困境:你不能在其内部调用一个函数。

那么,我将如何去调用一个函数,通过制作另一个函数,然后从里面调用日历? 谢谢。

关于SystemError

一个例子:

function cal() 
    { 

    document.write("<td align='left' colspan=7><div id='calendar'></div></td>"); 
    (function() 
    { 
      var lastday = cal[month]; 
       DOMcalendar = document.getElementById("calendar"), 
       div = document.createElement("div"); 

      div.innerHTML = "<a href='javascript:void(0)'>Next</a>"; 
      div.onclick = function() 
      { 
       cal(lastday); 
      } 
      DOMcalendar.appendChild(div); 
    })() 

    } 

    cal(); 
+0

请张贴您的相关部分的代码。此外,*“如何让日历根据用户点击哪个链接自行调用”*并不能真正解释您正在尝试做什么。什么是日历?它可以自称吗?调用本身是什么意思? –

+0

为什么你a)没有使用任何lib如jquery和b)没有使用免费的日历小工具之一? – ThiefMaster

+0

A)想学习(了解日期/时间对象将派上用场),和B)如果我想进一步定制它,我不需要尝试理解其他人的代码(所以添加CSS更容易一些,日期范围等,因为我已经知道它是如何工作的)。哦,C)jQuery使用带宽(不是很多),但用户下载更好的越少。 – SystemError

回答

0

我不明白。

  1. 你不能在自己

O_O是的,你可以调用一个函数。

  1. 你不能传递变量的函数的onclick

O_O是的,你可以。只要定义一个小的λ-功能,会叫你想和你希望的任何参数的功能,沿

onclick="function(){myFuncWithArgs(arg1, arg2, arg3)}" 

或者,更好的线条,只是在分配你的JavaScript代码的回调。使用jQuery它看起来像

$("#yourButtonId").click(function(){ 
     // ...do whatever you like, variable called "this" 
     // is the DOM object of a button... 
}) 
+0

好的,谢谢,非常有帮助 – SystemError

+0

你的第一个代码块有两个错误:代码是eval'd,所以你有一个函数声明需要一个名字。在它周围加入'()'把它变成一个函数表达式。尽管如此,它们仍然不会将参数放在封闭的位置,所以它们需要成为全球性的,这很糟糕。总而言之,基于jQuery的解决方案是最好的选择。 – ThiefMaster

+0

@ThiefMaster这就是“沿着”的意思。 –