这个javascript函数没有定义?我该如何解决?

时间:2012-03-08 22:44:40

标签: javascript jquery

我在php文件中有这个代码。它应该根据特定的参数显示和隐藏一些html内容(我有一组复选框,如果你检查它们,会出现一些东西,或者根据复选框隐藏它们)。

现在,由于我的样式表获得了很多错误,并且在剥离之后,我仍然得到这个:在firefox错误控制台中“隐藏未定义”(我在firebug中尝试了错误控制台,并且没有显示任何内容) )。

这是代码,我不明白hide是如何定义的:

   $script =
  $("input[id^=\'edit-field-tipos-unidades-disponible-value\']").change(function(){' .
    $(".fila-matriz-gastos").hide();' .
    $(".fila-matriz-gastos").prev("label").hide();' .
    $("input[id^=\'edit-field-tipos-unidades-disponible-value\'][checked]").each(function(){' .
      var tipo = $(this).val();' .
      $(".tipo-uf-" + tipo).show();' .
      $(".tipo-uf-" + tipo).prev().show();' .
      $("input.tipo-uf-"+tipo+"[value=-1]").click(function(){' .
        $("input.tipo-uf-" + tipo).attr("checked", $(this).attr("checked"));' .
      });' .
    });' .
  }).change();';

我在这里几乎不知所措,因为我想主题输出,但我不太了解javascript的工作原理。

谢谢!

更新:

这是隐藏或显示的输出:

    <fieldset class=" collapsible">
<legend>
<a href="#">Matriz de Gastos</a>
</legend>
<div>
<div class="form-item">
<label style="display: none;">
Gastos por
<em>Departamento</em>
:
</label>
<div class="form-checkboxes tipo-uf-131 fila-matriz-gastos hidden" style="display: none;">
<div id="edit-matriz-gastos-131--1-wrapper" class="form-item">
<label class="option" for="edit-matriz-gastos-131--1">
<input id="edit-matriz-gastos-131--1" class="form-checkbox tipo-uf-131 fila-matriz-gastos hidden" type="checkbox" value="-1" name="matriz_gastos[131][-1]" style="display: none;">
Seleccionar/deseleccionar todos
</label>
</div>
<div id="edit-matriz-gastos-131-108-wrapper" class="form-item">
<label class="checkbox" for="edit-matriz-gastos-131-108">
<input id="edit-matriz-gastos-131-108" class="form-checkbox tipo-uf-131 fila-matriz-gastos hidden" type="checkbox" value="108" name="matriz_gastos[131][108]">
Gas
</label>
</div>

这是一个隐藏或显示内容的复选框,根据是否点击:

经过:

<label style="display: block;"><label style="display: block;">
Gastos por
<em>Departamento</em>
:
</label>
<div class="form-checkboxes tipo-uf-131 fila-matriz-gastos hidden" style="display: block;">

未选中:

<label style="display: none;">
Gastos por
<em>Departamento</em>
:
</label>
<div class="form-checkboxes tipo-uf-131 fila-matriz-gastos hidden" style="display: none;">

和另一个更新:

以下是我在jQuery docs找到的内容:

  

隐藏.hide()函数 - DOM操作

     

此功能隐藏页面上的匹配元素。它的作用是什么   将显示配置设置为“无”。您可以设置速度   消失'快','正常'或'慢'和回调功能   在影响被允许后被执行。

     

实施例

     

$("#class_div").hide();

     

在       <div id='class_div'>Hello world</div> <div id='class_div_2'>Hello world</div>

     

在:       <div id='class_div' style="display:none;">Hello world</div> <div id='class_div_2'>Hello world</div>

3 个答案:

答案 0 :(得分:1)

正如杰夫已经指出的那样,

在页面的头部包含jQuery。如果你已经加载了jQuery并且仍然有这个问题,那么你也将加载prototype.js / mootools / dojo或你修补$ function。要在其他库旁边使用jQuery,请在include之后直接调用'jQuery.noConflict()',并在脚本中用'jQuery'替换所有'$'。

答案 1 :(得分:0)

.hide可能是一个jQuery函数。我认为你从页面中删除了jQuery。在FireBug中,进入脚本选项卡并在加载的文件中查找jQuery。你看到了吗?

答案 2 :(得分:0)

如果在noconflict模式下加载jQuery,无论你是使用mootools还是其他任何库,都需要用jQuery替换$或者在函数中将$ back赋值给jQuery。

EG

jQuery("#class_div").hide();