我有一个代码来替换使用Backbone.js的内容
的jsfiddle
我不知道为什么内容被替换时,该复选框按钮的增长。 简单地说,我用下面的代码来复选框
$('.checkWeek').button();
我有一个代码来替换使用Backbone.js的内容
的jsfiddle
我不知道为什么内容被替换时,该复选框按钮的增长。 简单地说,我用下面的代码来复选框
$('.checkWeek').button();
我想原因是因为你保持调用$('.checkWeek').button();
在每次点击所以jQuery不会有趣的东西,并增加了一个span
一中span
导致规模增长。
一个简单的解决方法是不调用$('.checkWeek').button();
如果按钮已经存在(或显示)
// if button already exists then dont add it again.
if(!$('label[for=checkWeekM]').hasClass('ui-button'))
$('.checkWeek').button();
看看这里: http://jsfiddle.net/Thxtr/3/
目前的代码存储在模板div
标签-每次通话时间button
模板进行修改。 您可以通过使用避免script
类型标签text/template
,这样就不会如JavaScript执行。
现在:
<div data-template-name="central-home">
<div data-template-name="">
<input type="checkbox" class="checkWeek" id="checkWeekM" />
<label for="checkWeekM">L</label>
</div>
</div>
改成:
<script data-template-name="central-home">
<div data-template-name="">
<input type="checkbox" class="checkWeek" id="checkWeekM" /><label for="checkWeekM">L</label>
</div>
</script>
使用JavaScript不变模板不会被发现。 所以,你还必须更新该行:
content.view = ...$.trim($("[data-template-name='"+ template_name +"'] div").html()...
随着模板的要求是删除一个div内:
content.view = ...$.trim($("[data-template-name='"+ template_name +"']").html() ...
工作拨弄
我猜$('.checkWeek').button()
只需要每调用一次.checkweek
总共元素,或者只是一次。
如果是这样那么可能的解决方法是:
$('.checkWeek').button()
有条件地(虽然我不知道该测试可能是什么)。 $('.checkWeek')
选择更多的选择性,即,仅选择新鲜加入的元素。 $('.checkWeek').button('destroy').button()
或类似的-你将不得不通过插件的API文档搜索)。 如果没有应用程序(和插件)的更完整的理解,我不能告诉这些可能性是最合适的。