如何创建一个函数并使用jQuery调用它?

时间:2015-04-30 00:05:17

标签: javascript jquery

我以前在点击功能中有很多东西。 现在,我尝试通过创建一个函数并重新调用它来重构我的代码,这样我就可以在不止一个地方重复使用它而不重复自己。

我现在被困了,不知道我在这里做错了什么。 我的.js文件中出现0错误和0警告。我用JS lint。

这是我现在所拥有的。

function cbInit() {

    ($pbSection, $chSection, $chBtns, $chBtnsRow, $btnTime, $btnRemediation).hide();
    ($cbSection, $cbBtns).show();
    $btnBiDefault.removeClass('btn-bi-default-clicked');
    $btnAssignmentPerformance.addClass('btn-bi-default-clicked');
    $cbImage.attr('src', '/BIM/resources/images/monitorprogress/reports/02-Course Benchmark/Assignment.png');
}

$courseBenchmark.click(function(e) {
    e.preventDefault();

    cbInit();
}

没有任何隐藏,没有加载图像。 似乎cbInit();永远不会执行。

  • 如何追查这类问题?
  • 有人可以帮我一点帮忙吗?

2 个答案:

答案 0 :(得分:1)

将变量列表放在括号中并不会自动将方法调用映射到所有这些变量上,它只调用逗号运算符,该运算符将计算到列表中的最后一个运算符。您可以使用jQuery方法.add()来合并集合。

function cbInit() {

    $pbSection.add($chSection).add($chBtns).add($chBtnsRow).add($btnTime).add( $btnRemediation).hide();
    $cbSection.add($cbBtns).show();
    $btnBiDefault.removeClass('btn-bi-default-clicked');
    $btnAssignmentPerformance.addClass('btn-bi-default-clicked');
    $cbImage.attr('src', '/BIM/resources/images/monitorprogress/reports/02-Course Benchmark/Assignment.png');
}

答案 1 :(得分:1)

这不是javascript(因此jquery)的工作方式:

($pbSection, $chSection, $chBtns, $chBtnsRow, $btnTime, $btnRemediation).hide();

如果您需要一个衬垫,您可以这样做:

[$pbSection, $chSection, $chBtns, $chBtnsRow, $btnTime, $btnRemediation].forEach(function($item){$item.hide()});