Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在多个实例中重复使用此代码?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何在多个实例中重复使用此代码?,javascript,jquery,Javascript,Jquery,我使用这段代码在两个输入(开始时间和结束时间)中设置时间间隔。它工作得很好,但我想允许用户创建任意数量的时间选择器对。我是否可以将当前时间选择器与tpStartSelect(this)或类似功能一起发送,以便对每个时间选择器对重复使用tpStartSelect/tpEndSelect?如果这有意义的话 $('.start_time.timepicker').timepicker({ onSelect: tpStartSelect }); $('.end_time.timepicker')

我使用这段代码在两个输入(开始时间和结束时间)中设置时间间隔。它工作得很好,但我想允许用户创建任意数量的时间选择器对。我是否可以将当前时间选择器与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)


谢谢大家!

看来你已经有了必要的工具。如果每个元素都有一个类
时间选择器
,则只需执行一次

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

这并不漂亮,但这正是我想要的(当用户添加更多内容时,行号会增加)。谢谢大家

$('.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
       }
   });
}

所以基本上你只希望元素是任何东西?@jdmdevdotnet现在我需要在两个地方设置$('#element').timepicker()。第一次就可以了,但是在这两个函数中,如果它们能够从第一次给出元素时就获取该元素,这将是一件非常棒的事情,这样可以更容易地在多个实例中重复使用它。我可以将元素传递到函数中而不是重新声明它吗?让它以
this
为目标,然后绑定函数。@KevinB谢谢,我该怎么做?mdn function bind第一个选项将使它们更改页面上的每一个.timepicker。他们需要能够独立工作。我可以为“outer”.timepicker()设置唯一的元素,但是如果两个函数中的元素引用了当前的元素,而不是页面上的任何.timepicker,那就太好了。有道理吗?我不可能这样做:
$('.timepicker').timepicker({onSelect:tpStartSelect(this)})@jdmdevdotnet谢谢!我可以创建多个函数,这是可行的,只有两个函数()必须引用当前函数,而不是所有函数。@jdmdevdotnet我不知道,可能是这样的<代码>函数tpStartSelect(time,endtimepickerist,element){element.timepicker(
…@jdmdevdotnet更多想法?谢谢,我还是不知道你需要什么。你说你不想让一堆函数调用该方法。我的解决方案有效。你还需要访问函数中的元素吗?这是单独的。