javascript - jquery 类型错误 : can't assign to properties of new String

标签 javascript jquery

为什么我无法做到这一点:

$(".item").on('click', 'a.close', closeItem());

        function closeItem() {
            $(".item").fadeOut({
                duration: 400,
                }
            });
        }

但这确实有效

    $(".item").on('click', 'a.close', function() {
            $(".item").fadeOut({
                duration: 400,
                }
            });
    });

为什么不能用声明的处理程序替换通用处理程序?

最佳答案

你可以这样做:

$(".item").on('click', 'a.close', closeItem);

function closeItem() {
    $(".item").fadeOut({
        duration: 400,
        }
    });
}

您需要将函数作为参数传递而不是调用它。按照您完成此操作的方式,您调用该函数并将结果(在本例中为未定义)传递给处理程序而不是实际的函数。

关于javascript - jquery 类型错误 : can't assign to properties of new String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48526212/

相关文章:

javascript - javascript 函数的参数中包含的文本是否会成为搜索引擎的关键字?

javascript - 将下拉列表中的选择添加到列表

javascript - 鼠标悬停时如何更改段落文本?

javascript - 自定义弹出消息呈现但按钮不起作用?

javascript - 如何确保一个 JavaScript 函数在另一个函数之后被调用

javascript - 为什么 UglifyJS 将 `someFunction` 转换为 `(0, v.someFunction)` ?

javascript - 基本 Javascript 变量作用域

javascript - 检查值并分配 TRUE 的更短方法

jquery - 当通过jquery按下某个键时如何将样式应用于输入文本

javascript - 如果宽度大于 767px 是否启用插件?