动态地将纸张项目添加到纸张菜单

时间:2016-05-18 18:02:25

标签: jquery ajax polymer-1.0

我有paper-menu

<paper-menu id="city-menu"></paper-menu>

我根据输入到另一个字段导致的ajax返回结果,使用jQuery添加项目。该字段并不重要,但我对ajax调用的成功函数是

      function (data) {
        if (data.success == 'true') {
          menuItems = '';
          $.each(data.data, function(index, city){
            menuItems += '<paper-item id="'+city.id+'">'+city.name+'</paper-item>';
          });
          $('#city-menu').html(menuItems);
          $('#city-menu').show()
        } else {
          $('#city-menu').hide()
        }
      } 

但是现在我已经升级了我的Polymer组件,这条线不再有用了:

$('#city-menu').html(menuItems);

也就是说,而不是一系列&#39;纸张项目&#39;城市我得到一个div:

<div class="selectable-content style-scope paper-menu"></div>

(而且,是的,我已经确认menuItems是我认为它应该是的。)另一方面,如果我做了一些愚蠢的事情

$('#city-menu').html('<h1>Hello World!</h1>');

然后它运作正常。

1 个答案:

答案 0 :(得分:0)

因此,立即插入整个菜单而不是项目。在这种情况下,ajax调用的成功函数变为:

      function (data) {
        if (data.success == 'true') {
          $('#city-menu').remove()
          menuItems = '<paper-menu id="city-menu">';
          $.each(data.data, function(index, city){
            menuItems += '<paper-item id="'+city.id+'">'+city.name+'</paper-item>';
          });
          menuItems += '</paper-menu>';
          $(menuItems).insertAfter('#city-id');
          $('#city-menu').show()
        } else {
          $('#city-menu').hide()
        }
      } 

令人惊讶的是,这是有效的。居多。