javascript - jQuery:调用一个函数两次

标签 javascript jquery

我正在尝试运行一个函数两次。页面加载时一次,然后单击时再次。不确定我做错了什么。这是我的代码:

$('div').each(function truncate() {
    $(this).addClass('closed').children().slice(0,2).show().find('.truncate').show();
});

$('.truncate').click(function() {

    if ($(this).parent().hasClass('closed')) {
        $(this).parent().removeClass('closed').addClass('open').children().show();
    }

    else if ($(this).parent().hasClass('open')) {
        $(this).parent().removeClass('open').addClass('closed');
        $('div').truncate();
        $(this).show();
    }

});

问题出在第 13 行,我再次调用 truncate(); 函数。知道为什么它不起作用吗?

编辑 jsFiddle:http://jsfiddle.net/g6PLu/

最佳答案

这是一个命名函数文字。

名称仅在函数范围内可见。
因此,truncate 不存在于处理程序之外。

相反,创建一个普通函数并将其传递给 each():

function truncate() { ...}

$('div').each(truncate);

关于javascript - jQuery:调用一个函数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660066/

相关文章:

jquery - 使用 jQuery ui.sortable 时未触发鼠标悬停事件

javascript - PHP 后删除样式属性

javascript - 删除数组中所有对象的属性

javascript - 从表单字段中获取最大数字

javascript - 检查元素数量 jQuery

jquery - 使用 live() 获取加载的 iframe 内容

javascript - 如何从日期范围选择器中获取两个日期?

javascript - 如何在javascript中合并两个嵌套对象

javascript - 如何检查多个复选框中是否至少选中了一个复选框?

javascript - 动态构建数组,附加值