1

動的に生成されたスライダーの値を取得しようとしています。残念ながら、私が何をしても、常に「0」または null の値が返されます。私はこれを理解することはできません...

私が使用しているHTMLコードは次のとおりです。

<input type="number" data-type="range" class="init_slider ui-input-text ui-body-b 
ui-corner-all ui-shadow-inset ui-slider-input" name="init_slider_0" id="init_slider_0" 
min="-5" max="30" />

   <div role="application" class="ui-slider-track ui-btn-down-b ui-btn-corner-all">

      <a href="#" class="ui-slider-handle ui-btn ui-btn-up-b ui-shadow ui-btn-corner-all" 
data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" 
data-theme="b" role="slider" aria-valuemin="-5" aria-valuemax="30" aria-valuenow="14" 
aria-valuetext="14" title="14" aria-labelledby="init_slider_label_0" style="left: 
54.285714285714285%;"><span class="ui-btn-inner"><span class="ui-btn-text"></span></span></a>
   </div>

そして私のJS(非効率かもしれませんが、これを機能させようとしているだけです):

$('[data-role="page"]').live('pageshow', function () {
 $(".init_slider").change(function() {
    var init_data = {};
    $.each(".init_slider_label", function(index, option) {
        char_name = $("#init_slider_label_"+index).text();
        var init_val_desc = $("#init_slider_"+index).next();
        var init_val_foo = $(init_val_desc).children("a")[0];
        var init_foo = $(init_val_foo);
        var init_val = $(init_foo).attr('aria-valuenow');
        init_data[char_name] = init_val;
     });
   });
});

init_val の値は、私が何をしようとしているかに応じて、常に「0」または何も表示されないようです。

スライダーを単純なテキストフィールドに変更すると、同じ問題が発生するため、スライダーに固有の問題ではないと思います。常に「0」の値を返します。だから、私がこのコードをどのように呼んでいるかに関係があるのだろうか. 上記の例でわかるように、「pageshow」を使用しています。しかし、ボタンをクリックした後も同じ問題があります。

誰でも私に提案はありますか?

ありがとう!

4

2 に答える 2