2015-11-11 58 views
2

我的代碼工作(代碼測試)使用閉包添加我的日曆的點擊事件tu項目。如果用戶每天點擊,代碼添加對飛行表ID爲myTable(數據表插件)重構jquery關閉:如何重構爲標稱函數?

$dowElement.addClass('event-clickable'); 
$('#' + id).click(function(){ 
    $('#myTable').dataTable().fnAddData([ 
      giCount+ ".1", 
      giCount+ ".2", 
      giCount+ ".3", 
      giCount+ ".4" 
     ]); 
     giCount++; 
}); 

嘗試重構中使用的功能,但無法正常工作。

$dowElement.addClass('event-clickable'); 
$('#' + id).click(jsonToTable()); // No work and broke calendar 

也可以嘗試

$dowElement.addClass('event-clickable'); 
$('#' + id).click(function(){ 
    jsonToTable(); 
}); 

後第一個答案(編輯)不工作,如果點擊,但演出天日曆事件。

$dowElement.addClass('event-clickable'); 
$('#' + id).click(jsonToTable); 

很明顯,有些部分使用javascript,因爲我不明白。

function jsonToTable() { 

     $('#myTable').dataTable().fnAddData([ 
      giCount+ ".1", 
      giCount+ ".2", 
      giCount+ ".3", 
      giCount+ ".4" 
     ]); 
     giCount++; 
    } 
+1

使用'$('#'+ id).click(jsonToTable);'。使用函數引用,而不是調用它。 – Tushar

+0

不起作用。 THKS。 – abkrim

回答

1

您必須通過jsonToTable參考。它不起作用,因爲你調用它並且你傳遞了它的返回值。

$('#' + id).click(jsonToTable); 
+0

也沒有工作...編輯我的文章添加此格式。在這種格式下,顯示日曆事件,但點擊時不向表格中添加數據。 – abkrim

+0

它是否找到'$('#'+ id)'對象? '$('#'+ id).length'返回什麼? – laszlokiss88

+0

在將它傳遞給click函數之前,您是否定義了'jsonToTable'? – laszlokiss88