$(this)未定义,并且不使用相同的函数返回选择器

时间:2016-09-16 15:23:01

标签: javascript jquery

我在2个不同的事件中使用函数main()时遇到问题。第一件事是:

$buttonStart.on('click', main);

在第二次活动中,我还需要做其他事情,所以它是这样的:

$buttonDelay.on('click', function () {
    otherFunction();
    main();
});

main()函数最后使用了jQuery函数:

$(this).ripple(100);

所以,问题在于,在第一种情况下它完美地工作,而在第二种情况下,它说:

  

未捕获的TypeError:无法读取属性' defaultView'未定义的

我不知道如何解决这个问题,以及为什么它的行为方式不同。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您可以使用Function.prototype.call()this设置为$buttonDelay otherFunctionmain,您也可以将事件对象作为第二个参数传递给函数到.call()

$buttonDelay.on("click", function (event) {
    otherFunction.call(this, event);
    main.call(this, event);
});