Mobiscroll, идентифицируйте элемент, запускающий его

Сценарий:

У меня есть форма, которая требует многократных сборщиков времени и выбора. Чтобы уменьшить дублирование, я придумал план иметь только 2 скрытых входа, один для времени, а другой для средства выбора, затем у меня есть несколько ссылок/кнопок с класс для например "триггерВремя"

HTML:

<input class="hidden" id="timeSelect" />

<button class="triggerTime" id="btn1">Select time 1</button>
<button class="triggerTime" id="btn2">Select time 2</button>
<button class="triggerTime" id="btn3">Select time 3</button>

JavaScript:

//triggering time picker
$('.triggerTime').click(function(e){
    e.stopPropagation();
    e.preventDefault();
    $('#timeSelect').mobiscroll('show');
    //$('#timeSelect').mobiscroll('trigger', name, $.makeArray(e));
});

//activating time picker
$('#timeSelect').mobiscroll().time({
    theme: 'ios7',
    display: 'bottom',
    mode: 'scroller',
    headerText: false,
    onSelect: function(valueText,inst) {
        console.log('onSelect',valueText,inst,this);
    },
    onShow: function(html, valueText, inst) {
        console.log('onShow',html,valueText,inst);
    },
    onBeforeShow: function (html, inst) {
    console.log('onBeforeShow',html,inst,this);
    }
});

Вопрос:

Есть ли способ передать информацию об элементе, запускающем мобискролл во время «onSelect»? Мне нужно знать, какая кнопка активировала мобискрол

Версии компонентов:

  • Мобискролл 2.8.2
  • JQuery 2.0.3

person Nick Germi    schedule 25.11.2013    source источник


Ответы (1)


Только так я смог добиться того, чего хотел (дополнительная активация не требуется)

$('.triggerTime').click(function(e){
    e.stopPropagation();
    e.preventDefault();
    var clickedElement = $(this);
    $('#timeSelect').mobiscroll({
            anchor: clickedElement,
            theme: 'ios7',
            display: 'bottom',
            mode: 'scroller',
            headerText: false,
            preset: 'time',
            onSelect: function (valueText,inst) {
                    clickedElement.html(valueText);
            }
    });
    $('#timeSelect').mobiscroll('show');
});
person Nick Germi    schedule 26.11.2013