Javascript 是不是;模糊“;仅针对HTML表单对象触发事件?
我正在开发一个交互式web应用程序,当前安装在(用户:demo@demo.com,密码:demo)。它允许您将包含图像和/或文本的项目从左侧边栏拖到右侧的工作区中,并调整/编辑它们的大小 我已经设置了一个Javascript 是不是;模糊“;仅针对HTML表单对象触发事件?,javascript,jquery,events,onblur,Javascript,Jquery,Events,Onblur,我正在开发一个交互式web应用程序,当前安装在(用户:demo@demo.com,密码:demo)。它允许您将包含图像和/或文本的项目从左侧边栏拖到右侧的工作区中,并调整/编辑它们的大小 我已经设置了一个onblur事件处理程序,当一个新创建的对象失去焦点时(至少在理论上)触发该处理程序,出于测试目的,该处理程序只需发出一个alert()调用。问题是处理程序根本不会被触发。下面是一段用于创建这些新对象的代码: obj.id = 'mesh-obj-'+current_object_id; jqO
onblur
事件处理程序,当一个新创建的对象失去焦点时(至少在理论上)触发该处理程序,出于测试目的,该处理程序只需发出一个alert()
调用。问题是处理程序根本不会被触发。下面是一段用于创建这些新对象的代码:
obj.id = 'mesh-obj-'+current_object_id;
jqObject
.attr('id',obj.id)
.attr('item_no', current_object_id)
.removeClass('dragged transparent tpl-obj no-user-select')
.addClass('mesh-obj')
.css({
'z-index' : current_z_index,
'left' : obj.position.left - mesh.position.left - mesh.borderWidth,
'top' : obj.position.top - mesh.position.top - mesh.borderWidth,
'right' : 'auto'
})
.on("focusout blur", function(event){
alert('object lost focus');
})
.appendTo('#mesh');
blur事件是否仅触发表单输入或任何HTML标记?如果是后者,那么我做错了什么?模糊事件不仅可以用于表单元素
阅读本文了解更多信息。您需要为html元素分配tabindex以捕获模糊事件 html:
来自jQuery文档:当元素失去焦点时,模糊事件被发送到元素。最初,此事件仅适用于表单元素,例如。在最近的浏览器中,事件的域已经扩展到包括所有元素类型。通过键盘命令(如Tab键)或鼠标单击页面上的其他位置,元素可能会失去焦点。可能是因为未附加
blur
处理程序吗?是否需要在焦点和模糊之间加逗号?无逗号。只是用空格隔开。你能提供更多细节吗?tabindex属性对我来说是新的,我不确定它到底有什么帮助,或者我如何使用它来解决我的问题。然后在元素上使用cssoutline:0
来删除聚焦该元素时出现的任何难看的轮廓。哪些是较新的浏览器?(快速总结会很好,我喜欢quirksmode.org,但它可能并不总是可以访问…)知道这一点很好,这是我假设的,但它仍然不能解决我的问题。否则,我仍然不知道为什么新创建的元素上的blur事件处理程序不能启动。现在最好恢复它在所有主流浏览器上都能运行
<div id="box1" class="box" tabindex="1">div 1</div>
<div id="box2" class="box" tabindex="2">div 2</div>
$('.box').blur(function(){
console.log(this)
})