2013-07-29 117 views
1

我花了幾天時間瀏覽jQuery網站上的指南,試圖瞭解它。我有一個相當不錯的把握,和JavaScript。但是,我正在嘗試使用它,而且我有點困惑。需要幫助理解jQuery函數

這裏的情況: 我想有一個函數接受參數,當被調用時,將使用這些參數來設置div的內部html。

在常規的JS我會做這樣的事情:

function showMessage(type, title, message){ 
    div.innerHTML = "hello world!"; 
} 

這顯然使用的參數但是爲了簡單起見,我沒有。

我知道在jQuery的,做你會做同樣的事情:

$('#id').html('Hello world!'); 

然而,要做到這一點我需要它在文檔準備功能。我也嘗試了

$('#close').click(function(event) { 
    do stuff; 
} 

與原來的JS功能,我可以簡單地做一個

onClick="showMessage" 

有沒有辦法來調用這樣的功能在jQuery的?還是我需要使用.click監聽器?我對jQuery並不瞭解,但我不知道我的系統將來需要做什麼,所以我寧願有一種方法在需要時調用該函數。另外,我如何將參數傳遞給jQuery函數?

+0

''$的onclick'( '#接近')點擊()'也是有效的。但後者可以將Javascript與HTML代碼分開,這使得結構更容易管理。 – Raptor

+0

在document.ready中做東西是很好的,但是分配hello world的普通java腳本方式依賴於文檔的相同「準備好」來工作,所以jQuery並沒有讓這變得更困難。相反,Jquery提供了一種方便的方式來通過document.ready知道文檔何時準備就緒。這是essentailly只是等待身體標記存在 – TGH

+0

@TGH,但你可以檢測document.ready沒有jQuery。相反,'$(document).ready()'把它變成一個jQuery對象,無論有沒有jQuery,你都可以做到。 – Ohgodwhy

回答

1

這是你在找什麼?爲了

$(document).ready(function() { 
    $('#close').click(function() { 
     showMessage('id', 'Hello world!'); 
    } 
}); 

function showMessage(id, message){ 
    $('#' + id).html(message); 
} 
+0

可能會這樣做。我可以在html中正確調用showMessage?並使用jQuery的#close按鈕來做同樣的事情? – sharf

+0

是的,但一般來說做像'onclick =「showMessage('id','Hello World!');」'是不好的形式。通過直接的JavaScript連接你的事件和類似事件。 – Jay

+0

爲什麼它不合格? – sharf

2

使用。點擊()或。對()的聽衆打電話給你的功能保持的緣故JavaScript調用了HTML的

而且,我怎麼傳遞參數給jQuery的功能?

你將它們傳遞到功能使用上的點擊事件

function showMessage(param1, param2) { 
    //do stuff with your params 
} 

jQuery('#id').click(function() { 
    showMessage(param1, param2); 
}); 
+0

謝謝,這有幫助,但傑伊先得到它。 – sharf

2

使用文檔準備好時,創建函數概念的匿名回調:

$(document).ready(function(){ 
    //call function 
    showMessage("alert", "hello", "message") 
}) 

function showMessage(type, title, message){ 
    $('#id').html('type is :' +type+ ' title is :' +title+ 'message is'+ message); 
} 
+0

謝謝,這有幫助,但傑伊先得到它。 – sharf

0

使用$(document).ready()功能觸發頁面和元素來監聽定義的事件並相應地運行函數。但您可以使用JQuery工具和JavaScript風格的腳本。

以下可能幫助:

<input type=text onchange="getName(this.value,'link.php');" /> 

JS:

function getName(val, href){ 
    var link = href +'?name='+val; 
    $('#result').load(link); // JQuery function 
}