簡體   English   中英

JavaScript, JQuery 問題:頁面加載時自動觸發 Function!

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM