2011-10-19 260 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這就是「沿着」的意思。 –