jQuery(document).ready(function($)
{
$('.c5sliderSelect').change(function()
{
alert('change clicked');
});
});
当我更改选择列表项时,我收到6个警报。不知道为什么。我只在标记中有一个带有此类名的元素,而选择列表有10个选项。
为什么警报会针对单个更改事件触发多次?
标记:
<select
class="c5sliderSelect"
title="Note: only categories which have posts assigned are listed here">
<option value="">Custom Text</option>
<option value="164">Blog (10)</option>
<option value="8">Digital Cameras (3)</option>
<option value="9">GPS Systems (1)</option>
<option value="7">Healthy Herbal Teas (1)</option>
<option value="93">hidden (1)</option>
<option value="20">iPhone 4s (2)</option>
<option value="5">Samsung Galaxy (5)</option>
<option value="4">Smart Phones (5)</option>
<option value="1">Uncategorized (7)</option>
</select>
我在这里要做的是在所选项目的值为“”
时隐藏不相关的div答案 0 :(得分:3)
尝试使用alert
以外的其他内容。 alert
对焦点产生了可怕的影响,当然change
事件与focus
有关。请尝试console.log
或类似。
例如,this live example使用您的标记只会显示一个change
事件被触发。
答案 1 :(得分:1)
使用click()
绑定来捕获点击次数并使用$
或jQuery.noConflict()
来保证不与其他JavaScript库发生冲突。
$(document).ready(function()
{
$('.c5sliderSelect').click(function()
{
alert('change clicked');
});
});
或
$.noConflict();
jQuery(document).ready(function()
{
jQuery('.c5sliderSelect').click(function()
{
alert('change clicked');
});
});
为了澄清一点,使用click()
是一个鼠标事件,它不会使用键盘捕获更改。
答案 2 :(得分:1)
这意味着对于您的jQuery脚本,元素存在6次。您可能已经初始化了6次元素,或者在您的情况下,某些脚本更改了元素$('。c5sliderSelect'),但上述脚本不足以确定它。
答案 3 :(得分:0)
如果您想使用点击功能:
$('.c5sliderSelect').click(function()
更改可能不是您正在寻找的正确事件......