我有jquery函数,我需要使用razor代码调用。 下面是我的jquery函数:
(function ($) {
fixheader= function () {
$('td:nth-child(' + column + '),th:nth-child( ' + column + ')').width("5px");
$("#GridHeader").html("<table>" + $('#HtmlGrid table thead').html() + "</table>");
$("#GridHeader table tr:first").append("<th></th>");
$("#GridBody").html("<table>" + $('#HtmlGrid table tbody').html() + "</table>");
$("#HtmlGrid").hide();
};
})(jQuery);
以下是来自剃刀代码的电话:
<script type="text/javascript">
fixheader();
</script>
我无法使用此代码调用jquery。错误:未定义修复程序
答案 0 :(得分:0)
您正在fixheader()
初始化中定义document.ready
,因此其范围保持不变。因此,您无法在document.ready
块之外访问它。
编辑:将其移到外面
(function ($) {
})(jQuery);
是解决问题的一种方法。
答案 1 :(得分:0)
您可以从同一$(function(){...});
块调用函数,如下所示
(function ($) {
fixheader= function () {
$('td:nth-child(' + column + '),th:nth-child( ' + column + ')').width("5px");
$("#GridHeader").html("<table>" + $('#HtmlGrid table thead').html() + "</table>");
$("#GridHeader table tr:first").append("<th></th>");
$("#GridBody").html("<table>" + $('#HtmlGrid table tbody').html() + "</table>");
$("#HtmlGrid").hide();
};
//call function here
fixheader();
})(jQuery);
或以javascript方式定义函数,如下所示
<script>
function fixheader(){
$('td:nth-child(' + column + '),th:nth-child( ' + column + ')').width("5px");
$("#GridHeader").html("<table>" + $('#HtmlGrid table thead').html() + "</table>");
$("#GridHeader table tr:first").append("<th></th>");
$("#GridBody").html("<table>" + $('#HtmlGrid table tbody').html() + "</table>");
$("#HtmlGrid").hide();
}
</script>