Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery没有';t拾取编程元素。onchange()调用_Javascript_Jquery_Forms - Fatal编程技术网

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
错误,尽管两者都没有收到。当单击相关的
标签
时,会调用jQuery
change
处理程序

我使用以下方法解决了问题:

$(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 );