我想將一個變量傳遞給內聯的jQuery函數(即:在實際鏈接(這是一個圖像映射中的區域標記)內使用onMouseOver="function();"
))。jQuery - 調用內聯函數
該函數只在被調用時才放在$(document).ready(function(){
行之前,但這樣做會導致jQuery出現各種問題。
所有我想要的是一個簡單的標籤(如<area shape="circle" coords="357,138,17" onMouseOver="change('5');" id="5" />
推出所包含的代碼的正常jQuery的體內功能。
非常感謝您能提供任何幫助。
爲了說明這一點,以下工作:
<script type="text/javascript">
function myfunction(x) { alert(x); //Alerts 2
}
</script>
<img src="/shared_images/loading.gif" border="0" usemap="#Map">
<map name="Map"><area shape="rect" coords="171,115,516,227"
onMouseOver="myfunction('2')"></map>
但是下面沒有
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
function myfunction(x) { alert(x); //Nothing happens
}
}
</script>
<img src="/shared_images/loading.gif" border="0" usemap="#Map">
<map name="Map"><area shape="rect" coords="171,115,516,227"
onMouseOver="myfunction('2')"></map>
這是一個偉大的答案。 你寫關於myfunction是一個局部變量。你能解釋一下函數是如何變量的嗎? 非常感謝。 – 2009-08-22 13:09:42
在JavaScript中,* everything *是一個變量(或者,使用更傳統的語言,一切都是* data *),包括函數。當你編寫函數f(){};''''''''''''''''''''''''''''''''''基本上就是使用一個別名來替代'var f = function(){};'這使得在JavaScript中使用「匿名」在其他語言中,你可以寫'int x = 2; f(x);'或簡單地'f(2)'。在JavaScript中,因爲函數就像所有其他的數據一樣,所以你可以寫'var foo = function(){}; f(foo);'或者只是'f(function(){});'理解這是理解JavaScript的關鍵。 – VoteyDisciple 2009-08-22 13:17:37