jquery TypeError:无法分配给新String的属性

时间:2018-01-30 16:29:32

标签: javascript jquery

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

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

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

然而这有效

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

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

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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

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

您需要将该函数作为参数传递而不是调用它。在你完成它的方式中,你调用函数并将结果(在这种情况下为undefined)传递给处理程序而不是实际的函数。