【发布时间】:2015-12-20 07:58:06
【问题描述】:
我有一个div,它在a click 上popedUp。我的问题非常奇怪,请查看下面的 sn-p:
HTML
<a class="button highlightPopup" href="#adc" onclick="showPopup('popDiv');">Some Text</a>
<!-- pop up div basic markup -->
<div id="popDiv">
<!-- lots of CSS and div here in between -->
<input type="text" class="form-control inputMedium iconImg" placeholder="input 1" id="cr_num1" onfocusout="validate()">
<input type="text" class="form-control inputMedium iconImg" placeholder="input 2" id="cr_num2" onfocusout="validate()">
<input type="text" class="form-control inputMedium iconImg" placeholder="input 3" id="cr_num3" onfocusout="validate()">
</div>
JQ
$('a.highlightPopup').on('click', function(){
if($('#popDiv').is(':visible')){
console.log("ye");
//this works
$('#popDiv').find('input[type=text]').filter(':visible:first').val('test');
//below 2 don't :(
$('#popDiv').find('input[type=text]').filter(':visible:first').trigger('click');
$('#popDiv').find('input[type=text]').filter(':visible:first').focus();
}else{
console.log("ney");
}
}
popDiv 是一个简单的 div,其中包含许多输入字段,我想在第一个 input 上设置自动对焦弹出 以进行验证。非常基本的东西......对吗?
问题:
我添加了val('test') 只是为了看看它是否工作正常,所以我在我的div 上设置了test 但tigger('click') 甚至focus() 都不起作用。
即将出现的弹出窗口不是 jquery 弹出窗口,而是作为叠加层出现的自定义 div。
任何人知道为什么会发生这种情况???
【问题讨论】:
-
如果该代码是您实际拥有的所有代码,那么实际首先显示 div 的代码在哪里?只有在 div 可见后,才能对其子元素进行其他查找和过滤。
-
一些相关的
html和css-如果有的话,将有助于更多地理解.. -
@Shaunak :正是我的观点,父母变得可见,然后只有孩子活动发生。但并非所有活动都在发生,这就是问题!
-
你能创建一个 jsFiddle 来演示你的问题吗?那样修复它会容易得多。
-
jsfiddle.net/ufwg2cLy/1 它在演示中工作。你能检查一下吗
标签: javascript jquery html dom dom-events