如何在多个实例中重复使用此代码?

时间:2017-06-13 21:52:00

标签: javascript jquery

我使用此代码在两个输入中设置时间间隔(开始时间和结束时间)。它工作得很好,但我希望允许用户创建任意数量的时间选择器对。我可以使用tpStartSelect(this)或类似的方式发送当前时间选择器,以便每次选择器对重复使用tpStartSelect / tpEndSelect吗?如果这是有道理的。

$('.start_time.timepicker').timepicker({
    onSelect: tpStartSelect
});
$('.end_time.timepicker').timepicker({
    onSelect: tpEndSelect
});

function tpStartSelect( time, endTimePickerInst ) {
   $('.end_time.timepicker').timepicker('option', {
       minTime: {
           hour: endTimePickerInst.hours,
           minute: endTimePickerInst.minutes
       }
   });
}

function tpEndSelect( time, startTimePickerInst ) {
   $('.start_time.timepicker').timepicker('option', {
       maxTime: {
           hour: startTimePickerInst.hours,
           minute: startTimePickerInst.minutes
       }
   });
}

(timepicker()的实际插件代码在此页面上,我使用底部的示例4 https://fgelinas.com/code/timepicker/

谢谢!

2 个答案:

答案 0 :(得分:0)

它不漂亮,但这是我想做的事情(当用户添加更多时,row_no会上升)。谢谢大家。

$('.start_time-'+row_no).timepicker({
    onSelect: tpStartSelect
});
$('.end_time-'+row_no).timepicker({
    onSelect: tpEndSelect
});

function tpStartSelect( time, endTimePickerInst ) {
   $('.end_time-'+row_no).timepicker('option', {
       minTime: {
           hour: endTimePickerInst.hours,
           minute: endTimePickerInst.minutes
       }
   });
}

function tpEndSelect( time, startTimePickerInst ) {
   $('.start_time-'+row_no).timepicker('option', {
       maxTime: {
           hour: startTimePickerInst.hours,
           minute: startTimePickerInst.minutes
       }
   });
}

答案 1 :(得分:-1)

看来你已经拥有了必要的工具。如果每个元素的类别为timepicker,那么您只需要执行一次。

$('.timepicker').each(function(el) 
{ 
    el.timepicker({
        onSelect: tpStartSelect
    });
}