您好,
我创建了下拉列表。一个div标签包含ul,其中包含列表项。当用户点击li元素时,该值必须在输入框中更新。问题是点击事件没有触发一些li在第一种情况下,我放了3个LI元素,其中只有前两个元素触发事件但没有最后一个。在第二种情况下,我将LI元素更改为5.现在只有前3个元素触发但不是最后2个元素。 f 8元素5个元素触发,但不是最后3个元素。我对这种行为感到很困惑。我的代码可能有什么问题.. Here is the link 。你能帮帮我吗......
答案 0 :(得分:3)
为什么这种效果过于复杂? 保持简短(KISS)
我为之前提出的问题创建了一个简单的演示,请检查here。
另一个demo幻灯片生效。
您的模糊功能正在创建问题,因为同时触发了多个事件,特别是$('html').click()
,效果重叠。添加稍微延迟以使一切正常
/*Close value popup of the element which has lost focus*/
$('.irmNDrdnInput').blur(function(){
drndValId = 'drdn-val-'+$(this).attr('id').split('-')[2];
$('#'+drdnValId).delay(100).slideUp(300);
});
答案 1 :(得分:0)
代码中的以下行导致问题:(我认为不需要,因为您也有$(html).click()
个事件)
$('.irmNDrdnInput').blur(function(){
drndValId = 'drdn-val-'+$(this).attr('id').split('-')[2];
$('#'+drdnValId).slideUp(300);
});
演示:http://jsfiddle.net/6Kd67/5/
对于tab-press,您可以跟踪$('.irmNDrdnInput').keydown()
事件中的keyCode:
if (event.keyCode === 9) {
$('.irmNDrdnVal').slideUp(300);
return false;
}