Javascript 尝试创建Jquery按钮时出错

Javascript 尝试创建Jquery按钮时出错,javascript,jquery,html,out-of-memory,Javascript,Jquery,Html,Out Of Memory,我真的不确定我做错了什么,因为我以前做过这件事会成功的 我有一些动态添加的html代码 ...<td><label><input type=\"checkbox\" checked=\"checked\" class=\"Activechk form-contractor-active\" />Active</label></td>"... 我仔细看了一下,正在编辑这个答案 button函数似乎需要一个带有特殊属性“for”的标签,该

我真的不确定我做错了什么,因为我以前做过这件事会成功的

我有一些动态添加的html代码

...<td><label><input type=\"checkbox\" checked=\"checked\" class=\"Activechk form-contractor-active\" />Active</label></td>"...

我仔细看了一下,正在编辑这个答案

button函数似乎需要一个带有特殊属性“for”的标签,该属性的值与将成为按钮的输入元素的id相同

在下面的示例中,我发现示例输出中的标签/输入关系与此标签不同

以下示例基于在以下位置找到的文档:


$(文档).ready(函数(){
$(“.Activechk”).button();
});
主动式

主动二号
主动三号
输入可以在DOM的其他地方,但不能是标签的子元素。按钮显示在标签所在的位置:

主动式 主动二号 主动三号
如果我不执行
.button()
命令,则该命令可以正常工作长度为7。。。似乎不足以耗尽内存…那么
$(“.Activechk”).each(函数(索引){alert(索引);$(this.button();})呢?别指望它能解决问题,但你看到几个警报然后它就坏了吗?有趣的是,我也有同样的想法;只是没有警报。正如你预测的那样,它不起作用,但我会添加警报,然后我会看看会发生什么。我确实发现我调用了.button两次。我删除了这个问题。我的错误已从
内存不足
更改为
堆栈溢出
。我也做了你上面建议的测试。我得到了索引为0的警报,然后它挂起几秒钟,我得到了堆栈溢出错误。Ok。因此没有错误,但它也没有将复选框更改为按钮。。。它没有任何效果。啊哈!我突然想到了!然而不久前我有一个问题涉及到这一点,我被告知这是没有必要的。我想我误解了那个家伙。我当时的问题是,现在的问题是,
for
需要
输入
具有
id
。我的输入不能有
id
,因为我在页面上创建了许多输入,这就是我使用该类的原因。思想?但是deff+1@kralco626您可以将全局JS变量初始化为1(
var\u globalCounter=1;
),然后使用此计数器设置ID,创建正确的标签,每次将ID递增1。@Shadow-ugh。。。是的,我能做到。我有点希望Jquery会有一个不需要使用ID的解决方案。。。哦,好吧…@kralco626jquery有它的局限性——但在我看来,添加这样的东西真的很简单,如果它能解决问题的话……)
1594 if ( !eventHandle ) {
1595 elemData.handle = eventHandle = function() {
1596 // Handle the second event of a trigger and when
1597 // an event is called after a page has unloaded
1598 return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
1599 jQuery.event.handle.apply( eventHandle.elem, arguments ) :
1600 undefined;
1601 };
1602 } 
<!DOCTYPE html>
<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>

  <script>
  $(document).ready(function() {
    $(".Activechk").button();
  });
  </script>
</head>
<div id="problem">
<label><input type="checkbox" checked="checked" class="Activechk form-contractor-active" />Active One</label>
<br />
<label><input type="checkbox" checked="checked" class="Activechk form-contractor-active" />Active Two</label>
<br />
<label><input type="checkbox" checked="checked" class="Activechk form-contractor-active" />Active Three</label>
</div>
<hr />
<div id="solution">
<p>Inputs can be somewhere else on the DOM but cannot be child elements of labels. The buttons appear where the labels are:</p>
<!-- input elements -->
<input id="inputSolutionOne" type="checkbox" checked="checked" class="Activechk form-contractor-active" />
<input id="inputSolutionTwo" type="checkbox" checked="checked" class="Activechk form-contractor-active" />
<input id="inputSolutionThree" type="checkbox" checked="checked" class="Activechk form-contractor-active" />

<!-- label elements -->
<table>
    <tr><td>
<label for="inputSolutionOne">Active One</label>
    </td></tr><tr><td>
<label for="inputSolutionTwo">Active Two</label>
    </td></tr><tr><td>
<label for="inputSolutionThree">Active Three</label>
    </td></tr>
</table>
</div>
</body>
</html>