2013-07-23 82 views
0

我想調用一個函數,而不是警報,我認爲這只是做這樣的事情:FunctionName();並刪除警報('');但它不是爲我工作:(簡單的Javascript調用函數不工作/不知道如何讓它上班

可有人請看看下面我有,告訴我什麼是錯的代碼?

太感謝你了!

<script type="text/javascript"> 
var comper; 
function checkComper() { 
    var onResponse = function(comperNow) { 

     if (comper === undefined) { 
      comper = comperNow; 
      return; 
     } 

     if (comper !== comperNow) { 
      // show a message to the visitor 
      alert("New Info Added"); // <--*** I WANT TO TAKE THIS OUT AND CALL $("#append").click(function(e) 

      comper = comperNow; 
     } 
    }; 
    $.get('getlastupdate.php', onResponse); 
} 

var tid = setInterval(checkComper, 2000); 

$(function() { 

    var $table = $("table.tablesorter"); 
    $("#append").click(function(e) { 
     e.preventDefault(); 
     $.get('updatetable.php', function(data) 
       { 
        $table 
        .find('tbody') 
        .html('') 
        .append(data); 
        $table.trigger("update", [true]); 
       }); 
    }); 
/*........ and so on.... */ 
</script> 
+1

在一個時間間隔內附加一個事件處理程序並不是一個好主意。 – adeneo

+0

當您嘗試切換這兩個功能時,會出現什麼錯誤?看起來你也試圖使用JQuery,它是否被加載? – MaxPRafferty

+0

@ Karl-AndréGagnon解決了我的問題,但是如何在不添加事件處理程序的情況下執行我想要的操作? – msvuze

回答

2

約了變化是什麼:

alert("New Info Added"); 

到:

$('#append').trigger('click'); 

它將模擬點擊並觸發該功能。

+0

甜美!這樣可行!現在謝謝你,但我擔心@adeneo在說什麼? – msvuze

+0

@msvuze他可能missunderstood了你的問題,雖然你想綁定事件,而不是調用它。 –

+0

啊,明白了。再次感謝你,我很高興你幫助我解決這個問題。謝謝!謝謝!謝謝!!! – msvuze

1

有一點重要區別:

alert("New Info Added")是一個函數。實際上,alert()是一個函數,通過參數「新增信息」。

$('#append').click(function(e) {不是函數,至少不是相同的方式。 $('#append')是一個jQuery選擇器函數,用於選擇ID爲「append」的所有元素。 $('#append').click()是一個在選擇器中返回的所有元素上設置單擊事件的函數。

$('#append').click(function(e) {的整個語法是什麼意思是它自己的語法錯誤。你正在做的是告訴選擇器中的元素他們的點擊功能應該是什麼。但function(e) {表示這是該函數的代碼的開始。該行代碼直到結束}) - }關閉功能聲明,並且)關閉click的呼叫才完成。

所以,你不能簡單地取代alert("New Info Added"),這是一個完整的函數調用,具有$('#append').click(function(e) {,因爲它是一個語法錯誤 - 你還沒有完成function(e)聲明,也不是click函數調用。正如卡爾的回答告訴你的,你可以觸發點擊功能。或者,你可以使用快捷鍵:

$('#append').click() 

注意,這是一個充分適當的句子,因此可以代替alert

+1

非常感謝斯科特給你簡單易懂的解釋! :) 謝謝! – msvuze

相關問題