无法从SCM音乐播放器访问DOM

时间:2015-05-11 13:58:09

标签: javascript dom knockout.js audio-player

我正在使用SCM音乐播放器(一个开源网络播放器)构建一个网站,我想在音乐停止时使用“完成”回调来修改我的DOM。我可以访问此回调并执行“console.log()”,但我无法访问DOM ...我注意到这个脚本使用了Knockout库,但我不知道它是如何工作的,如果它是必要......这是我的scm.js代码:

finish = function(){
    //repeat one start again, otherwise next song
    if(repeatMode()==2) start();
    else {
        console.log('Next son de scm.js :');
        var div = ko.observable($('#ajouterSon').attr('role'));

        console.log('Div: ' + div);

        next();
    }
};

我播放歌曲时所做的改变:

$('.musiqueLink').on('click', function(event) {
  console.log('clic musique - last id = ' + lastidmusique);
  event.preventDefault();
  if(lastidmusique != null)
    document.getElementById('row'+lastidmusique).setAttribute("class", "row");
  document.getElementById('row'+$(this).attr('data-idmusique')).setAttribute("class", "row highlighted");
  SCM.play({title:$(this).attr('data-titre'),url:$(this).attr('data-lien')});
  lastidmusique = $(this).attr('data-idmusique');
});

包含'ajouterSon'的dom:

<body style=" background-image: url('imgs/backgrnd.jpg'); background-size: 100% 100%; background-repeat:no-repeat; background-attachment:fixed;">
<div id="ajouterSon" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
  <div class="modal-content">
      <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h1 class="text-center">Ajouter un son</h1>
          <?php

          ?>
      </div>
      <div class="modal-body">
          <form class="form col-md-12 center-block" id="ajoutSon">
            <div class="form-group">
              <input type="text" title="Titre du son" class="form-control input-lg" placeholder="Titre" id="titre">
            </div>
            <div class="form-group">
              <input type="text" title="Auteur du son" class="form-control input-lg" placeholder="Artiste" id="artiste">
            </div>
            <div class="form-group">
              <label for="genre">Style</label>
              <div class="form-group">
                <select class="selectpicker" multiple  id="genre">
                  <?php
                    $genres = $mysqli->query("SELECT idgenre, nom FROM GENRE");
                    while($row = $genres->fetch_array())
                      $rows[] = $row;
                    mysqli_free_result($genres);
                    foreach($rows as $row)
                    {
                      $styles = $mysqli->query("SELECT idstyle, nom FROM STYLE WHERE GENRE = ".intval($row['idgenre']));
                      while($rowStyles = $styles->fetch_array())
                        $rowsStyles[] = $rowStyles;
                      echo "<optgroup label=\"".$row['nom']."\">";
                      foreach ($rowsStyles as $rowStyles) 
                        echo "<option value=\"".$rowStyles['idstyle']."\">".$rowStyles['nom']."</option>";
                      echo "</optgroup>";
                      mysqli_free_result($styles);
                      unset($rowsStyles);
                    }
                    unset($rows);
                  ?>
                </select>
              </div>
            </div>
            <div class="form-group">
              <input type="text" title="Décris ton son" class="form-control input-lg" placeholder="Description" id="description">
            </div>
            <div class="form-group">
              <input type="url" title="Lien Youtube/Soundcloud" class="form-control input-lg" placeholder="Lien Youtube/Soundcloud" id="lien">
            </div>
            <div class="form-group">
              <button class="btn btn-primary btn-lg btn-block" type="submit" id="submit">Ajouter</button>
            </div>
          </form>
      </div>
      <div class="modal-footer">
          <div class="col-md-12">
          <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Annuler</button>
          </div>    
      </div>
  </div>
  </div>
</div>
...
</body>

我确切地说,我已经将JS包括在身体末端的JS中。

感谢您的帮助, 西奥

0 个答案:

没有答案