1

ドロップダウンメニューからオプションを選択するたびに値を返すJavaScriptがあります。

   $(document).ready(function() {
        function calculateVals() { 
            //dropdown menus      
             var valuestart = $("select[name='timestart']").val();
             var valuestop = $("select[name='timestop']").val();

             //create date format          
             var timeStart = new Date("01/01/2007 " + valuestart).getHours();
             var timeEnd = new Date("01/01/2007 " + valuestop).getHours();

             var hourDiff = timeEnd - timeStart;                         

             return hourDiff;  

        }
        $("select").change(calculateVals);
        calculateVals();
    });

上記のスクリプトは、以下のjqueryプラグインに追加する必要のある数値を返します。オプションに追加する必要がありmaxますが、エラーが発生しますcalculateVal is not defined

$(function(){
    $("#slider").slider({
        range: "min",
        value:  8,
        min: 1,
        max: calculateVals(), //my attempt
        step: 1,
        slide: function(event, ui) {
            $("#amount").text(ui.value);
        },
         stop: function(event, ui) {
            $("#notifications").val(ui.value);
        }
    });
    $("#notifications").val( $("#slider").slider("value") );
});
4

2 に答える 2

2

functionレディブロックの外側を定義してみてください。

function calculateVals() { 

             //code here...

             return someResult;                                          
}



$(document).ready(function() {
    $("select").change(calculateVals);
    calculateVals();
});
于 2012-06-14T22:23:23.183 に答える
2

関数をグローバルスコープに移動します。

function calculateVals() {       
    //code here...
    return someResult;                                           
}

$(document).ready(function() {
        $("select").change(calculateVals);
    calculateVals();
});

さらに良いことに、DOMレディを誤用するときに、DOMレディが何を意味するのかを学びましょう。

  • 準備ができているハンドラーは1つだけです。
  • DOM要素に関連するコードのみが存在する必要があります。

アップデート:

後でスライダーの最大値を次のように変更できます。

$( "#slider").slider("option", "max", calculateVals());
于 2012-06-14T22:24:38.340 に答える