Javascript jQuery没有';t拾取编程元素。onchange()调用
这更像是一个教育问题,而不是一个需要解决的问题。 所以我有一个Javascript jQuery没有';t拾取编程元素。onchange()调用,javascript,jquery,forms,Javascript,Jquery,Forms,这更像是一个教育问题,而不是一个需要解决的问题。 所以我有一个输入,它的样式是使用 并编辑了自定义元素插件的检查方法,以包括: try{ element.onchange(); }catch(err){ console.log(err); } 这不管用。我期望出现一个console.log的“changed”,最坏的情况是出现console.log错误,尽管两者都没有收到。当单击相关的标签时,会调用jQuerychange处理程序 我使用以下方法解决了问题: $(elemen
输入
,它的样式是使用
并编辑了自定义元素插件的检查方法,以包括:
try{
element.onchange();
}catch(err){
console.log(err);
}
这不管用。我期望出现一个console.log
的“changed”,最坏的情况是出现console.log
错误,尽管两者都没有收到。当单击相关的标签
时,会调用jQuerychange
处理程序
我使用以下方法解决了问题:
$(element).change();
所以我想知道,为什么jQuery不接收对元素.onchange()
的编程调用?假设元素
是一个DOM元素(如果它是一个jQuery元素,它会爆炸),您正试图调用元素的属性onchange
当您通过jQuery绑定事件处理程序时,它不会添加任何onchange
属性-只有当您内联(在标记中)或通过本机javascript绑定处理程序时,这些属性才会存在。假设元素
是一个DOM元素(如果它是jQuery元素,它就会爆炸),您正试图调用元素的属性onchange
当您通过jQuery绑定事件处理程序时,它不会添加任何onchange
属性-这些属性只有在您内联(在标记中)绑定处理程序或通过本机javascript绑定时才会存在。jQuery
将使用其api绑定的事件存储在每个对象内的特殊数据
容器中,因此,您不能使用*
本机方法(只能使用.onchange=function()
或内联onchange=
本机设置)上的调用它
如果启动控制台(chrome)并键入$.event
,您将看到事件的jQuery内部表示形式,“默认”事件存储在$.event.global
中,并在内部进行管理
搜索jQuery.event.global[type]
at
jQuery
将使用其api绑定的事件存储在每个对象内部的一个特殊的数据
容器中,因此您不能使用*
本机方法调用它(只能使用.onchange=function()
或内联onchange=
本机方法设置)
如果启动控制台(chrome)并键入$.event
,您将看到事件的jQuery内部表示形式,“默认”事件存储在$.event.global
中,并在内部进行管理
搜索jQuery.event.global[type]
at
这里我可能错了,但是onchange
是一个元素的方法,通过它可以绑定onchange
事件hadler,但不能触发已经绑定的事件处理程序。jQuery一定是通过某种方式实现的。这里我可能错了,但是onchange
是一种元素方法,通过它可以绑定onchange
事件hadler,但不能触发已经绑定的事件处理程序。jQuery必须以某种方式完成它。那么jQuery是否会自动将更改处理程序绑定到任何关联的标签?或者,这一方面是如何工作的?@ahrenjquery将此信息存储在内部数据中object@ahren-在内部,jQuery使用addEventListener
或attachEvent
(取决于浏览器)绑定事件处理程序,而不是onchange
或onclick
或其他任何东西。我已经有一段时间没有查看源代码了,但我假设它只会使用一个钩子将每个元素的每个事件绑定到自己的代码中一次,然后按照正确的顺序调用您绑定的回调。那么jQuery是否会自动将更改处理程序绑定到任何关联的标签?或者,这一方面是如何工作的?@ahrenjquery将此信息存储在内部数据中object@ahren-在内部,jQuery使用addEventListener
或attachEvent
(取决于浏览器)绑定事件处理程序,而不是onchange
或onclick
或其他任何东西。我已经有一段时间没有查看源代码了,但我假设它只会使用一个钩子将每个元素的每个事件绑定到自己的代码中一次,然后按照正确的顺序调用您绑定的回调。
try{
element.onchange();
}catch(err){
console.log(err);
}
$(element).change();
if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
// No jQuery handlers for this event type, and it can't have inline handlers
return;
}
// Caller can pass in an Event, Object, or just an event type string
event = typeof event === "object" ?
// jQuery.Event object
event[ jQuery.expando ] ? event :
// Object literal
new jQuery.Event( type, event ) :
// Just the event type (string)
new jQuery.Event( type );