mobiScroll - Сбросить значение колес при нажатии на дополнительную кнопку

Я пытаюсь добавить третью функцию в скроллер mobiscroll. Прежде всего, некоторые пояснения: у меня есть 4 кастомных колеса от «0» до «9». Здесь пользователь может вставить 4-значное число.

В дополнение к стандартной кнопке «Отмена» («Abbrechen») и «Добавить» («OK») я хочу реализовать кнопку сброса («Bestand»), которая устанавливает все колеса в скроллере на значение «0». Добавление этой дополнительной кнопки не было проблемой, но, к сожалению, добавление к ней желаемой функциональности. Нужная функция как раз должна сбросить значение всех 4-х колес на значение «0». Следуя моему коду до сих пор:

заведи колеса....

var whl1 = {'1':'1',
         '2':'2', 
         '3':'3',
         '4':'4', 
         '5':'5', 
         '6':'6',
         '7':'7',
         '8':'8',
         '9':'9',
         '0':'0'};

var whl2 = {'1':'1',
         '2':'2', 
         '3':'3',
         '4':'4', 
         '5':'5', 
         '6':'6',
         '7':'7',
         '8':'8',
         '9':'9',
         '0':'0'};

var whl3 = {'1':'1',
         '2':'2', 
         '3':'3',
         '4':'4', 
         '5':'5', 
         '6':'6',
         '7':'7',
         '8':'8',
         '9':'9',
         '0':'0'};

var whl4 = {'1':'1',
         '2':'2', 
         '3':'3',
         '4':'4', 
         '5':'5', 
         '6':'6',
         '7':'7',
         '8':'8',
         '9':'9',
         '0':'0'};

 var wheel = [{},{},{},{}];
 wheel[0]['1000er'] = whl1;
 wheel[1]['100er'] = whl2;
 wheel[2]['10er'] = whl3;
 wheel[3]['1er'] = whl4;

запустите скроллер.... (в цикле)......

$('#' + i +'').scroller({
  display: 'modal',
  mode: 'clickpick',
  lang : 'de',
  headerText: function(value)   {
      //Some Stuff in here  
      },
  button3Text: "Bestand",
  button3: function(){
         // this function doesn't work................
         $('#' + i +'').mobiscroll('setValue', ['0', '0', '0', '0']);
  },
  formatResult: function(data) {
     // some other stuff in here
      },
  onSelect: function(valueText, inst) {
    // some other stuff, too
  },
  wheels: wheel,
  height: 40
    });   

Я пробовал много способов реализовать функциональность, но ничего не получалось... у кого-нибудь есть идея, как я могу решить эту проблему? Поскольку я уже потерял много времени, исправляя эту проблему (2 полных дня...), я был бы очень признателен за каждый ответ или маленькую подсказку.... Заранее спасибо и приятной недели!


person Daniel Rausch    schedule 13.05.2013    source источник
comment
Не могли бы вы также добавить код HTML, чтобы воспроизвести проблему?   -  person likeitlikeit    schedule 13.05.2013


Ответы (1)


Я думаю, что внутри функции button3 значение i всегда одинаково, не запоминается, какое значение оно имело внутри цикла.

Вы можете попробовать перебирать элементы с помощью jquery следующим образом:

HTML:

<input id="t1" class="mobiscroll" />
<input id="t2" class="mobiscroll" />
<!-- .... -->

Javascript:

$('.mobiscroll').each(function() {
    var that = $(this);

    that.mobiscroll({
        display: 'modal',
        mode: 'clickpick',
        lang : 'de',
        headerText: function(value)   {
            //Some Stuff in here  
        },
        button3Text: "Bestand",
        button3: function(){
            // this function doesn't work................
            that.mobiscroll('setValue', ['0', '0', '0', '0']);
        },
        onSelect: function(valueText, inst) {
            // some other stuff, too
        },
        wheels: wheel,
        height: 40
    });
});
person istvan.halmen    schedule 14.05.2013
comment
Goog Morning dioslaka, большое спасибо за ваши усилия и ваш быстрый пост... после того, как вы попробовали ваш код, все сработало отлично! Кроме того, ваш ответ кажется мне правдоподобным и логичным - вам просто нужно перебрать элементы mobiscroll по отдельности .... Желаю вам хорошей недели и надеюсь, что смогу помочь другим на этом форуме, как и вы :-) - person Daniel Rausch; 14.05.2013