1

我有一个模板,<ul>其中包含 2 个带有不同 ID<li>的链接的列表。<a id='variable_id'>我已将事件绑定到这 2 个 idiniciaispalavras. 问题是,当我单击示例iniciais链接时,我将其从 中删除<ul>并使用id='palavras'. 问题是,这个新链接没有绑定事件,即使事件在events哈希上。我怎样才能对子元素 执行类似jQuery liveon方法的操作?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;
});
4

1 回答 1

2

我认为您在插入 DOM 的标记中只是有小错字:

$("<li><a id='#iniciais'>Consultar por Iniciais</a></li>")

$("<li><a id='#palavras'>Consultar por palavras</a></li>")

id 属性中不应包含该#字符。

于 2012-12-11T11:46:38.350 回答