0

スクリプトでは、次のようになりました。

$('#image-slider').empty();

これにより、アプリケーションの画像スライダー要素が空になりました。

関数でID参照を直接使用することから移行したかったので、スクリプトの先頭で次のようないくつかの変数を宣言しました。

var globals = [];
globals.markup = [];
globals.values = [];
globals.markup.image_slider = $('#image_slider');

しかし、私が今電話するとき:

globals.markup.image_slider.empty();

スライダーは空になりません。

私が間違っていることについて何か考えはありますか?

編集:

完全な例:

$(document).ready(function(){
  var projects = <?= $json; ?>;
  var globals = [];
  globals.markup = [];
  globals.values = [];

  globals.markup.title = $('#title');
  globals.markup.image_slider = $('#image_slider');


  function load_project(f)
  {
      var potential = window.location.hash.substring(1);

      $.each(projects, function(i, project){

          if (project.permalink == potential)
          {
              // Manage stats and fields
              $('#title').text(project.title);
              $('#agency').text(project.agency);
              $('#description').text(project.description);
              $('#website_url').attr('href', project.website_url);

              // Manage images
              globals.markup.image_slider.empty();
    .....

編集:私はばかだった。単純なタイプミスでした。 image_sliderすべきだったimage-slider..私の悪い。

4

2 に答える 2

0

要素が作成される前に変数初期化スクリプトが実行されているように見えるため、globals.markup.image_sliderに割り当てられているjqueryコレクションは空です。そのコードをDOMReadyスクリプトに入れる必要があります。

$(function() { globals.markup.image_slider = $('#image_slider'); });

更新:コードサンプルから、あなたはすでにそれを行ったようです。さらに後で移動してみてください-"load"イベント($(window).bind( "load"、...);)-またはロジックをチェックして、要素がドキュメントによってレンダリングされ、後で動的に作成されないことを確認しますどこかにあなたの「load_project」。

于 2012-06-04T14:41:07.177 に答える
0

@davinが正しく示唆しているように、コードは問題なく、問題は他の場所にあります。マークアップでdivが識別されているのimage_sliderではなく、誤って入力してしまいました。image-slider

于 2012-06-04T14:52:48.007 に答える