jQuery模糊事件未在隐藏元素上触发

时间:2016-02-09 10:55:53

标签: javascript jquery events onblur

我只是想将blur事件绑定到我页面上找到的一组inputs

var $urlTextBoxes = $(`input[type='url'][data-url-prefixer]`);
$urlTextBoxes.on("blur", onUrlTextBoxBlur);

onUrlTextBoxBlur是一个简单的function检查当前值,

如果{'1}}在前缀为'http://'时已经显示(如果尚未设置)。<input type="url" data-url-prefixer />被调用,则会在$(function () { // ... }上调用onUrlTextBoxBlur

另一方面,如果blur在加载时隐藏(在div内)并在稍后显示,input永远不会被击中,我不明白这一点为什么?

我试过

onUrlTextBoxBlur

根本不起作用。

$(document).on("blur", $urlTextBoxes, onUrlTextBoxBlur);

显示

if (jQuery._data($("#ExternalRegistrationUrl")[0] !== undefined)) {
    console.log($("#ExternalRegistrationUrl")[0]);
    console.log(jQuery._data($("#ExternalRegistrationUrl")[0], "events"));
}

在master中,

input#ExternalRegistrationUrl.form-control
Object {blur: Array[1]}

在我的子视图中。不知何故,事件gots丢失了。但是,这怎么可能呢?在input#ExternalRegistrationUrl.form-control undefined onReady之前调用Masters onReady,不是吗?

似乎是另一个插件正在删除内容并在之后重新添加它。因此,所有SubViews都会丢失。现在我需要一种方法在插件完成魔术之后通过事件重新绑定!

1 个答案:

答案 0 :(得分:1)

HIDDEN FIELD还使用BLUR

<强> FIDDLE

<强> SCRIPT

$(document).ready(function(){
  $(":text").hide();
  $(":text").blur(function(){
    alert("Blurred");

  });;
  $(":text").show();
});

<强> HTML

<input type="text" />

<强> CSS

input
{
  display:none
}