Javascript jquery焦点未第二次触发

Javascript jquery焦点未第二次触发,javascript,jquery,html,css,iframe,Javascript,Jquery,Html,Css,Iframe,我有一个输入字段,所以当我单击任何输入字段时,它都会被聚焦。 当我点击外部时,它聚焦在外面 <input type="text" id="english" name="english"/> input:active,input:focus{ border: 2px solid red; } $(document).ready(function() { if (!($("input").is(":focus"))) { alert(

我有一个输入字段,所以当我单击任何输入字段时,它都会被聚焦。 当我点击外部时,它聚焦在外面

 <input type="text" id="english" name="english"/>

input:active,input:focus{
    border: 2px solid red;
}

$(document).ready(function() {
        if (!($("input").is(":focus"))) {
            alert('not focused');
        }
    }); 

输入:激活,输入:聚焦{
边框:2倍纯红;
}
$(文档).ready(函数(){
如果(!($(“输入”)为(“:焦点”)){
警惕(“未聚焦”);
}
}); 

如果输入元素未聚焦,则此警报是第一次调用。 每当我在输入元素外单击时,我需要一直调用它

更新:第二个问题

我在iframe中有一个输入字段,所以当我单击任何输入字段时,它都会聚焦。但是,如果我再次单击外部(身体区域),iphone键盘不会关闭iFrame中只有iphone和ipad存在问题。这在所有浏览器中都能很好地工作。因此,我尝试了在没有焦点的情况下调用
blur()
document.activeelement
。但他们都没有工作


当输入元素未聚焦时,如何关闭ipad/iphone键盘?

您没有在收听任何事件,它不会继续检查。您需要添加一个事件侦听器,用于侦听任何输入上的模糊事件。

如果您没有侦听任何事件,它将不会继续检查。您需要添加一个事件侦听器,用于侦听任何输入上的模糊事件。

epascarello所说的是正确的。当DOM加载完成时,
ready
函数中的
if
语句只触发一次

因为您使用的是jQuery,所以做您想做的事情非常容易

<input type="text" id="english" name="english"/>

input:active,input:focus{
    border: 2px solid red;
}

我不能帮你回答第二个问题。

埃帕斯卡雷罗说的是正确的。当DOM加载完成时,
ready
函数中的
if
语句只触发一次

因为您使用的是jQuery,所以做您想做的事情非常容易

<input type="text" id="english" name="english"/>

input:active,input:focus{
    border: 2px solid red;
}

我不能帮你回答第二个问题。

你能帮我举个有用的例子吗?主要是我需要用JS关闭iphone/ipad键盘,如果输入不集中,你能帮我举个例子吗?主要是我需要用JS关闭iphone/ipad键盘,如果输入不集中,请不要在模糊中发出警报!在测试时使用console.log通常我同意您的看法,但OP是在JSFIDLE中测试这一点的,在JSFIDLE中,控制台输出不是立即可见的,因此代码是否工作也不是立即可见的。使用alert()可以清楚地表明它实际上正在工作。另外,在本例中,我试图保留他的部分JS代码,以便他能够准确地看到需要什么来获得他必须发出的警报。控制台在JSFIDLE中是可见的,并且一个警报onblur将创建一个循环。这个调用不总是正确的?我需要打电话给EventHandler我不确定我是否理解你的要求。上面的代码是jQuery语法,用于将事件处理程序绑定到页面上任何输入字段上的focusout事件。当事件触发时(输入字段失去焦点),会调用带有alert()函数的行。不要在模糊状态下发出警报!在测试时使用console.log通常我同意您的看法,但OP是在JSFIDLE中测试这一点的,在JSFIDLE中,控制台输出不是立即可见的,因此代码是否工作也不是立即可见的。使用alert()可以清楚地表明它实际上正在工作。另外,在本例中,我试图保留他的部分JS代码,以便他能够准确地看到需要什么来获得他必须发出的警报。控制台在JSFIDLE中是可见的,并且一个警报onblur将创建一个循环。这个调用不总是正确的?我需要打电话给EventHandler我不确定我是否理解你的要求。上面的代码是jQuery语法,用于将事件处理程序绑定到页面上任何输入字段上的focusout事件。当事件触发时(输入字段失去焦点),会调用带有alert()函数的行。您尚未将任何事件附加到该行。您的代码只是检查输入是否集中在document.ready上。将en事件附加到输入字段,以便每次取消焦点时它都会进行检查。您尚未将任何事件附加到该字段。您的代码只是检查输入是否集中在document.ready上。将en事件附加到输入字段,以便在每次取消聚焦时都进行检查。