2012-03-06 92 views
0

這是我正在嘗試解決..本質上,我希望能夠更新輸入時的值,同時使用jQuery滑塊UI檢查複選框。所以,每個複選框對應一個不同的值。選中複選框後,該值應該相乘。jQuery UI Slider值變化

它可以工作,但問題是,它不會保留乘以更多滑動發生時檢查的數字。它回到原來的價值。

我在這裏做錯了什麼?

HTML

<input class="checkbox" type="checkbox">0.10 
<input class="checkbox" type="checkbox">0.25 
<input class="checkbox" type="checkbox">0.5 
<input class="checkbox" type="checkbox">0.75 
<input class="checkbox" type="checkbox">1.00 

<div class="increasedRevenue"><input id="increasedRevenueValue" value="0"></div> 

jQuery的

$('input:checkbox').click(function() { 
    $(this).siblings('input:checkbox').removeAttr('checked'); 
}); 

    $("#slider").slider({ 
     min: 100000, 
     max: 5000000, 
     step: 100000, 
     slide: function(event, ui) { 
      $("#increasedRevenueValue").val(ui.value); 

       $('input:checkbox').click(function() { 

        if($(this).is(":first-child")) { 
         $("#increasedRevenueValue").val($("#slider").slider("value") * 10);      
        } 
      }); 

     } 
    }); 
+1

'#slider'元素在哪裏?我懷疑它與'$(「#increaseRevenueValue」)。val(ui.value);'行有關係,因爲你將它重置爲存儲在'ui'對象中的值。 – Gingi 2012-03-06 21:03:38

+0

你可能是對的。我應該爲幻燈片功能編寫一個if else語句.. – Sethen 2012-03-07 02:49:10

回答

0

這裏有一些問題。

首先,您沒有在您的複選框中設置的值。沒有價值,你怎麼能告訴滑塊什麼多使用。您僅使用第一個複選框的複選框位置,您使用的唯一值是10。

接下來,您的step永不改變。爲了有一個乘數,這將需要改變,並綁定到任何一個盒子被檢查。

接下來,您的複選框click處理程序不應位於幻燈片事件中。 slide正在爲移動滑塊的每個像素添加一個新的點擊處理程序。

這裏是您的代碼的jsfiddle唯一不同的是步驟是使更容易看到更改。看看你可以做些什麼來解決我提到的一些問題,然後更新小提琴並點擊update按鈕來保存一個新版本,當你儘可能地得到時

+0

感謝您的回覆,讓我一次解決您的提及:首先,我沒有爲我的複選框設置任何值,因爲這是一個示例。其次,這個步驟是在滑動功能上設置的,這是你所指的?第三,click處理程序最初設置在幻燈片函數中,爲ui.value編寫變量。沒有區別在哪裏。創建的jsfiddle實際上和我一樣。我只需要知道如何讓它成倍增長並保持這種狀態。 – Sethen 2012-03-07 02:39:40

+0

如果需要,我會盡力提供幫助...但我不打算爲您寫信。它確實在幻燈片中的clcik處理程序上有所作爲......當您移動幻燈片時,會添加許多處理程序幻燈片回調會不斷調用 – charlietfl 2012-03-07 02:42:56

+0

真的,我所要求的只是某種處理程序,我可能會丟失或某種這裏我沒有看到邏輯。我會自己想出來的,不要介意。 – Sethen 2012-03-07 02:47:26