Javascript 多次单击事件触发
我正在学习为自己编写一个插件,但代码中有些奇怪的东西。我有一个重置按钮,当我点击它时,它的运行次数与我拥有的输入元素数相同 我的代码: HTML:Javascript 多次单击事件触发,javascript,jquery,jquery-plugins,jquery-events,Javascript,Jquery,Jquery Plugins,Jquery Events,我正在学习为自己编写一个插件,但代码中有些奇怪的东西。我有一个重置按钮,当我点击它时,它的运行次数与我拥有的输入元素数相同 我的代码: HTML: <div id="container"> <div id="createCSVWrap"> <fieldset> <legend> Create the CVS File </legend> <div class
<div id="container">
<div id="createCSVWrap">
<fieldset>
<legend> Create the CVS File </legend>
<div class="dateWrap">
<label> 开始时间: </label>
<div style="float:right">
<input id="startTime" name="startTime" type="text" value="13:37:06" />
</div>
</div>
</fieldset>
</div>
<input id="f" name="fck" value="18:27:56" />
<input class="tt" name="tt" value="02:07:56" />
<input name="ok" class="ok" value="08:07:56" />
</div>
我想我看到了问题所在。这与以下代码有关:
$(this).focus(function() {
_input = $(this);
originalTime = '';
intial();
});
function intial() {
showSetTime();
setTimePickerPosition();
$('#timeReset').click(resetTime);
}
这基本上意味着,每当用户关注文本框时,另一个单击处理程序将连接到重置按钮,从而多次触发同一事件
您需要做的是解除旧事件的绑定,然后使用解除绑定事件重新附加新事件
看到它在这里工作了吗:我想我看到了这里的问题。这与以下代码有关:
$(this).focus(function() {
_input = $(this);
originalTime = '';
intial();
});
function intial() {
showSetTime();
setTimePickerPosition();
$('#timeReset').click(resetTime);
}
这基本上意味着,每当用户关注文本框时,另一个单击处理程序将连接到重置按钮,从而多次触发同一事件
您需要做的是解除旧事件的绑定,然后使用解除绑定事件重新附加新事件
看到它在这里工作:
$(this).focus(function() {
_input = $(this);
originalTime = '';
intial();
});
function intial() {
showSetTime();
setTimePickerPosition();
$('#timeReset').click(resetTime);
}
$('#timeReset').unbind('click').click(resetTime);