jQuery-未捕获的TypeError:((x.event.special [i.origType] ||(中间值))。handle || i.handler).apply不是函数

请帮我。 当我在ASP.NET MVC中使用jQuery时,这是一个错误。

未捕获的TypeError:((x.event.special [i.origType] ||(中间 值))。 i.handler).apply不是未捕获的函数 TypeError:(((x.event.special [i.origType] ||(中间 值))。 i.handler).apply不是函数

导致此的代码是:

$('#btnClick').click(function(){   //code })

This is an image of the error

TaGiang asked 2020-06-29T22:54:28Z
13个解决方案
45 votes

在我的情况下,该错误是由将事件绑定到不存在的函数引起的。 我删除了我不知道绑定到事件的函数。

请参见下面的代码段:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="my-button">Click me</span>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="my-button">Click me</span>

它将产生:

未捕获的TypeError:((n.event.special [g.origType] ||(中间 值))。 g.handler).apply不是函数

smoksnes answered 2020-06-29T22:54:51Z
9 votes

如果这对任何人都有帮助,也可能是因为事件处理程序函数被声明了两次。

我的一个同事两次将该事件编码为“开”,然后我解决了(顺便说一句愚蠢的挑战)。

例如,如果您输入错误:

$(document).on('change', '#selectInput').on('change', '#selectInput', function () {});

一定是:

$(document).off('change', '#selectInput').on('change', '#selectInput', function () {});
Edwin Mendez answered 2020-06-29T22:55:24Z
3 votes

以我为例

$('body').click('click','.delete_item',function(e){})

当我打算输入时:

$('body').on('click','.delete_item',function(e){}) 

click更改为on可消除该错误。

a20 answered 2020-06-29T22:55:52Z
1 votes

我最近遇到了同样的问题。 我发现这是我处理jquery事件时的错误。 代替

$('#btnClick').click(function(){   //code })

试试这个,

$('#btnClick').on('click', function(){   //code })

它为我工作。 希望能帮助到你。

SamT answered 2020-06-29T22:56:21Z
1 votes

我得到此错误的另一种方法是,将一个函数遗忘地放置在函数名称应放在的位置:

错误:

$('.foo').click($('.bar').trigger('click'));

对:

$('.foo').click(function () {
  $('.bar').trigger('click');
});

也对:

$('.foo').click(triggerBarClick);

function triggerBarClick() {
  $('.bar').trigger('click');
}
tated answered 2020-06-29T22:56:54Z
1 votes

以我为例,它在宣布$(document).ready( function() {})内部代表团后开始工作;

Avinash Jain answered 2020-06-29T22:57:14Z
1 votes

我在选择器上绑定了一个不再存在的事件。

.js-test

我删除了.js-test div并忘记了。 那是导致我的错误。

adrianthedev answered 2020-06-29T22:57:38Z
1 votes

对我来说,唯一的解决方法是最后返回false

var button = $('<button>').click(function () {
    // do something
    return false;
});

看到这个问题。 它与传播有关。

Fabian Picone answered 2020-06-29T22:58:02Z
0 votes

我想这有点晚了,但是对于任何遇到此问题的人:检查您的html代码是否有多个jquery导入。 任何其他导入都可能使先前注册的handle / plugins / etc混乱。

Jan answered 2020-06-29T22:58:23Z
0 votes

对我来说,这发生在调整窗口大小时。 我的同事在一个元素上写了一个调整大小事件,后来他删除了该元素。 因此,稍后在jQuery上调整窗口大小时,将检查元素,如果找不到则抛出错误。

iamsangeeth answered 2020-06-29T22:58:43Z
0 votes

在我的情况下,“ {被动:true}”引起了问题:

$('#defaultSearchbar .dropdown-menu li').on('click', function () {
     //Something here, not important
}, { passive: true });

未捕获的TypeError:((i.event.special [f.origType] || {})。handle || f.handler).apply不是一个函数

通过移除来解决:

$('#defaultSearchbar .dropdown-menu li').on('click', function () {
     //Something here, not important
});
Önder Lop answered 2020-06-29T22:59:12Z
0 votes

声明尚不存在的函数时发生了相同的错误,即使我没有将它们仅声明为调用也是如此。 也许这是你的情况

E.Murzaev answered 2020-06-29T22:59:32Z
-1 votes

将多个事件绑定到单个ID或类,或者以错误的方式绑定事件都可能导致此问题。

就我而言,由于以下错误,我遇到了以下错误:

$('body').on('change', '.btnAddNewRow').click(function () {
Zahid answered 2020-06-29T22:59:56Z
translate from https://stackoverflow.com:/questions/32231036/uncaught-typeerror-x-event-speciali-origtype-intermediate-value-handl