0

このコードは、既存のすべての html ドロップダウンで機能しますが、動的に追加されたドロップダウンでも機能させる方法

ここにjqueryコードがあります

$(document).ready(function () {

  $('select.select').each(function () {
    var title = $(this).attr('title');
    if ($('option:selected', this).val() != '') {
      title = $('option:selected', this).text();
      $(this)
        .css({
          'z-index': 10,
          'opacity': 0,
          '-khtml-appearance': 'none'
        })
        .after('<span class="select">' + title + '</span>')
        .change(function () {
          val = $('option:selected', this).text();
          $(this).next().text(val);
        })
    }
  });
});
4

2 に答える 2

1
$(document).ready(function () {

    initDropDowns();

    function initDropDowns(){
      $('select.select').each(function () {
        var title = $(this).attr('title');
        if ($('option:selected', this).val() != '') {
          title = $('option:selected', this).text();
          $(this)
            .css({
              'z-index': 10,
              'opacity': 0,
              '-khtml-appearance': 'none'
            })
            .after('<span class="select">' + title + '</span>')
            .change(function () {
              val = $('option:selected', this).text();
              $(this).next().text(val);
            })
        }
      });
    }

    // on dropDowns add --> initDropDowns();

});
于 2013-09-25T09:25:33.047 に答える
0

$(document).ready() の代わりに $(document).live() を使用する必要があります

.ready() を使用すると、DOM の準備ができたときに起動するコールバックを登録できます。これは、window.onload を使用するのと似ていますが、より早く起動します (複数のコールバックを登録できます)。

.live() を使用すると、セレクターに基づいて一連のイベントにコールバックを登録できます。セレクターは DOM を継続的に監視し、追加された新しいノードに自身を登録します。

于 2013-09-25T09:27:46.200 に答える