3 回答

TA貢獻1757條經驗 獲得超7個贊
您好,您的表達式 ${data[c].abbreviation} 會將值放入不帶字符串引號的函數字符串中,即結果將是 onCurrencyClick(abbreviation)
而它應該是 < a i=2>. 請使用 onclick="onCurrencyClick("${data[c].abbreviation}")"相反。onCurrencyClick('abbreviation')

TA貢獻1719條經驗 獲得超6個贊
不要使用內聯onclick,而是使用事件委托。這意味著您有一個事件偵聽器來處理來自子代和孫代的所有事件。修改是一個非常小的修改,請參見下面的示例。
這樣做的原因是您將 JavaScript 保存在 JS 文件中。就像現在一樣,您遇到了 JS 錯誤,并且必須在 HTML 中查找它。這可能會變得非常混亂。然而內聯 onclick 監聽器也是有效的,但它們已經過時了,應該避免,除非絕對沒有其他方法。與 CSS 中使用 !important 進行比較,效果相同。
function onCurrencyClick(event){
var val = $(this).val();
setCookie("booking_currency", val, 14);
}
currencyMap.on('click', '.currency-item', onCurrencyClick);
此示例采用您嘗試從單擊的 的 屬性插入的 val。 元素沒有這樣的屬性,但是 有這樣的屬性,并且是一個更適合它期望與之交互的元素。將可點擊元素用于點擊等目的通常是一個很好的做法。 value.current-item<span><button>
在下面的示例中,您會看到正在使用的按鈕以及在 屬性中輸出的 abbreviation 值3> 元素,可以從 函數中讀取。value<button>onCurrencyClick
jQuery(document).ready(function($) {
$.getJSON('wp-content/themes/mundana/currency/currency.json', function(data) {
for(let c in data){
currencyMap.append(`
<button value="${data[c].abbreviation}" class="currency-item">
<span>
${data[c].symbol}
</span>
<span>
${data[c].currency}
</span>
</button>
`)
}
});
- 3 回答
- 0 關注
- 200 瀏覽
添加回答
舉報