编辑:
感谢创建这个小提琴的 Puneet:http: //jsfiddle.net/G3vSK/
似乎它不适用于 Chrome 版本 28
在 Firefox (v22) 上,警报出现一次,但您不能在框中输入任何内容
我无法解决的另一个问题:这是我的 Javsacript 代码:
function updateFieldsetStyleAdjustment(){
alert("update");
$('fieldset').not('[data-style=\'none\']').find('input, select, textarea, button') //find input-fields
.focus(function(){
alert("active: "+$(this).attr('id'));
});
}
这个函数应该为我网站上的一些输入字段添加一个 onfocus-Handler。每当我关注一个字段以插入一个值时,都应该调用它。
我的问题是,当我关注一个输入字段时,该函数会被多次调用。每个焦点事件的呼叫/警报数量从 3 到 16 或更多不等。
然而,我的领域从未失去焦点。
我应用了 onfocus-event 2 次(“update”-alert 出现两次),但这是正常的。(我没有向输入字段添加 16 个 onfocus 事件侦听器)。
有人知道我在做什么错吗?
编辑:
这是 HTML 片段:
<fieldset id="fs_1" data-style="data" d class="">
<legend>General Information</legend>
<div class="lineWrapper inputTooltip" data-tooltippos="left">
<label for="fs_1_form51f37d255fb35_name">Name</label>
<span class="inputWrapper">
<input type="text" id="fs_1_form51f37d255fb35_name" name="name" autofocus="" maxlength="40" tabindex="50">
</span>
</div>
<div class="lineWrapper inputTooltip" data-tooltippos="left">
<label for="fs_1_form51f37d255fb35_ansprechperson">Ansprechperson</label>
<span class="inputWrapper">
<input type="text" id="fs_1_form51f37d255fb35_ansprechperson" name="ansprechperson" maxlength="40" tabindex="51">
</span>
</div>
<!-- ...more Wrappers with input-fields... -->
</fieldset>
<!-- ...more fieldsets... -->
我怎么称呼它:
1.) $(document).ready(function() { updateFieldsetStyleAdjustment(); });
2.) 在每次 Ajax-Request 之后我再次调用它(输入字段通过 Ajax 加载)
解绑:
当我放入$(this).unbind('focus');
我的焦点事件处理程序时,它只被触发一次。但是当我再次关注同一个领域时,它不再起作用(如预期的那样)。
当我把$('*').unbind('focus');
我的 -Function 放在开头时updateFieldsetStyleAdjustment()
,它不会改变任何东西。