在我來說,我是用一個空的href和這是造成documents.ready再次觸發。這是我的html:
<li><a onclick="numberOfmonthsToloadInDatabase(this)" href="" id="12Monat">12 Monat</a></li>
當我刪除它然後它沒有火災document.ready。 我不明白這個行爲,任何解釋都會非常有幫助。我無法發表評論,因爲我沒有足夠的積分在任何帖子上添加評論。謝謝。
在我來說,我是用一個空的href和這是造成documents.ready再次觸發。這是我的html:
<li><a onclick="numberOfmonthsToloadInDatabase(this)" href="" id="12Monat">12 Monat</a></li>
當我刪除它然後它沒有火災document.ready。 我不明白這個行爲,任何解釋都會非常有幫助。我無法發表評論,因爲我沒有足夠的積分在任何帖子上添加評論。謝謝。
從你的例子我不得不問,你爲什麼使用鏈接標籤?既然你只想要觸發onclick事件,你應該使用span並最終使用css cursor:pointer;表明它是可以接受的。
function numberOfmonthsToloadInDatabase(evt) {
alert("your clicked");
}
li span {
cursor:pointer;
}
<li><span onclick="numberOfmonthsToloadInDatabase(this)" id="12Monat">12 Monat</span></li>
這樣,可以防止用於在沒有指定URL的默認鏈接行爲。你這樣做的工作量較少,而不是使用javascript preventDefault()來阻止鏈接執行默認行爲。
由於其他人告訴你href會導致頁面重新加載,所以你可以選擇使用href="javascript:void(0);"
或href="#"
以避免頁面重新加載,如果你想保留使用href標籤時得到的下劃線鏈接樣式。
e.preventDefault()
在該方法中將不起作用,因爲傳遞給該函數的參數不是一個事件。這是鏈接元素本身。
AFAIU您正試圖爲您的用戶創建一些月份選項。更現代的方法是使用數據屬性。你可以使用它們像這樣:
function numberOfmonthsToloadInDatabase(link) {
console.log(link.dataset.months);
}
<li>
<a onclick='numberOfmonthsToloadInDatabase(this)' href='#' data-months='12'>
12 Monat
</a>
</li>
<li>
<a onclick='numberOfmonthsToloadInDatabase(this)' href='#' data-months='10'>
10 Monat
</a>
</li>
點擊一個空的href屬性的鏈接將刷新頁面。 – j08691
您可以使用'e.preventDefault()'(在'numberOfmonthsToloadInDatabase'函數內)來防止頁面重新加載。 –
將你的href =「」改爲href =「javascript:void(0);」如果你不希望頁面重新加載 – gaetanoM