![](/img/trans.png)
[英]Session is saved when page load is triggered by PHP, but not when triggered by Javascript
[英]JavaScript, JQuery Problem: Function triggered automatically when page load!
我是 jQuery 的新手,所以請原諒我問了這么簡單的問題。 我想使用jQuery Spin庫並在值發生變化時得到通知。 這是我的代碼:
<script>
$(document).ready(function(){
$.spin.imageBasePath = './theme/css/images/spin1/';
$('#spin1').spin({
min: 1,
max: 99,
lock: true,
beforeChange: calculate_price()
});
});
function calculate_price() {
$('#lblTotalPrice')[0].innerHTML = $('#spin1')[0].value;
}
</script>
這很簡單。 但問題是每次加載頁面時都會觸發“calculate_price”function,並且當用戶更改 Spin Edit 的值時不會觸發。
有人知道為什么會這樣嗎?
我不熟悉那個特定的庫,但如果你其他一切都正確,那么你需要改變這個:
beforeChange: calculate_price()
對此:
beforeChange: calculate_price
您將beforeChange
設置為調用calculate_price()
的返回結果,而不是 function 本身。 因此,它在初始分配時調用一次,而不是在旋轉期間調用。
查看beforeChange
回調的文檔,您將在值實際更改之前被調用。 該回調使用兩個參數調用,舊值和新值,因此您可能希望將它們添加到您的calculate_price(newVal, oldVal)
function 並使用它們,而不是從旋轉控件獲取值。
您應該在spin()
方法選項中將calculate_price()
更改為calculate_price
。 問題是您嘗試將執行calculate_price
function 的結果設置為beforeChange
字段。 這就是為什么每次在頁面加載時都會調用它。 您需要將 function 設置為回調,因此,不要在 function 名稱之后放置()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.