Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将jquery函数重新附加到呈现的模板?_Javascript_Backbone.js - Fatal编程技术网

Javascript 如何将jquery函数重新附加到呈现的模板?

Javascript 如何将jquery函数重新附加到呈现的模板?,javascript,backbone.js,Javascript,Backbone.js,我有一个视图正在呈现我的模板-该模板由许多元素组成,我正在使用jquery插件内联编辑这些元素。通过相应地调用每个div.editable()使元素可编辑 我有一个包含以下元素的模板: <div id="pricing">some value</div> <div id="terms">some other value</div> 有没有更好的方法可以做到这一点,而无需对视图的render方法中需要的每个div显式声明.editable() 我不

我有一个视图正在呈现我的模板-该模板由许多元素组成,我正在使用jquery插件内联编辑这些元素。通过相应地调用每个div.editable()使元素可编辑

我有一个包含以下元素的模板:

<div id="pricing">some value</div>
<div id="terms">some other value</div>

有没有更好的方法可以做到这一点,而无需对视图的render方法中需要的每个div显式声明.editable()

我不认为有很多方法可以解决这个问题。调用
editable()
必须在dom元素准备好使用插件进行操作之后进行。由于要替换HTML,因此必须等待视图重新呈现。我建议将需要编辑的div设置为自己的类,如
editable
。然后,您可以使用类选择器,而不是分别为每个div执行该操作

<div id="pricing" class="editable">some value</div>
<div id="terms"  class="editable">some other value</div>

这将使您无需为每个div编写新的调用,并且在视图中添加/删除div时无需不断更新

我认为
this.$el.find('.editable').editable()
this.$('.editable').editable()
$('.editable').editable()
更可靠,因为你不知道
this.$el
什么时候会在DOM中,所以你不知道
$('.editable')
什么时候会找到你关心的一切。@muistoshort-True。由于搜索的上下文有限,因此速度也可能更快,具体取决于DOM树的大小。我将更新anwser
<div id="pricing" class="editable">some value</div>
<div id="terms"  class="editable">some other value</div>
this.$(".editable").editable(); //or this.$el.find('.editable').editable();
//instead of 
this.$el.find('#pricing').editable();
this.$el.find('#terms').editable();  
//etc.