我有一个列表<ul>
的模板,其中包含2 <li>
个链接<a id='variable_id'>
,其中包含不同的ID。我已将事件绑定到这两个ID iniciais
和palavras
。问题是,当我点击iniciais
链接的示例时,我会从<ul>
中将其删除,并使用id='palavras'
创建新链接。问题是,即使事件在events
哈希上,这个新链接也没有绑定到它的事件。如何对jQuery
live
子元素上的on
Backbone
或View
方法执行某些操作?
var MyView = Backbone.View.extend({
el: '#campos',
initialize: function() {
},
注意我如何将事件绑定到2种链接。
events: {
'click #palavras': 'mudar_para_consulta_palavras',
'click #iniciais': 'mudar_para_consulta_iniciais'
},
在此方法中,我从列表中删除列表项,并使用新ID插入一些新内容。
mudar_para_consulta_palavras: function() {
$('#campo_consulta').val('');
$('#campo_consulta').attr('placeholder', 'Digite palavras inteiras');
$("#campo_consulta").attr('tipo', 'chave');
$('#palavras').parent().remove();
$("<li><a id='#iniciais'>Consultar por Iniciais</a></li>").insertBefore('.divider');
},
对于这个其他方法也是如此,只更改id定义。
mudar_para_consulta_iniciais: function() {
$('#campo_consulta').val('');
$('#campo_consulta').attr('placeholder', 'Digite inicio de palavras');
$("#campo_consulta").attr('tipo', 'iniciais');
$('#iniciais').parent().remove();
$("<li><a id='#palavras'>Consultar por palavras</a></li>").insertBefore('.divider');
}
});
return MyView;
});
答案 0 :(得分:2)
我认为您在插入DOM的标记中只会出现小错误:
$("<li><a id='#iniciais'>Consultar por Iniciais</a></li>")
和
$("<li><a id='#palavras'>Consultar por palavras</a></li>")
id属性中不应包含#
字符。