За последние 24 часа нас посетили 18224 программиста и 1607 роботов. Сейчас ищут 1629 программистов ...

помощь по коду Jquery

Тема в разделе "Прочее", создана пользователем mister_ex_ex, 6 дек 2016.

  1. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    Есть html код в нем 8 div со своими audio файлами
    https://jsfiddle.net/Rashit1122233/d975gtn0/16/
    HTML:
    1.   <div class="test">
    2.       <p>test-1</p>
    3.       <audio class="audi"  src="mp3/1.mp3"></audio>
    4.   </div>
    5.   <div class="test">
    6.       <p>test-2</p>
    7.       <audio class="audi" src="mp3/2.mp3"></audio>
    8.   </div>
    9.   <div class="test">
    10.       <p>test-3</p>
    11.       <audio class="audi" src="mp3/3.mp3"></audio>
    12.   </div>
    13.   <div class="test">
    14.       <p>test-4</p>
    15.       <audio class="audi" src="mp3/4.mp3"></audio>
    16.   </div>
    17.   <div class="test">
    18.       <p>test-5</p>
    19.       <audio class="audi" src="mp3/5.mp3"></audio>
    20.   </div>
    21.   <div class="test">
    22.       <p>test-6</p>
    23.       <audio class="audi" src="mp3/6.mp3"></audio>
    24.   </div>
    25.   <div class="test">
    26.       <p>test-7</p>
    27.       <audio class="audi" src="mp3/7.mp3"></audio>
    28.   </div>
    29.   <div class="test">
    30.       <p>test-8</p>
    31.       <audio class="audi" src="mp3/8.mp3"></audio>
    32.   </div>
    33.  
    34.  
    35. </body>
    как сделать так чтоб по нажатию на этот блок играл свой аудио файл в этом блоке, по нажатию на след играла своя мелодия в своем блоке?

    Код (Text):
    1. $('.test').click(function() {
    2.   $(this).css({
    3.     'background': '#fff000'
    4.   });
    5.  
    6. });
    сделал по нажатию чтоб блок менял свет, а как мелодию сделать не понимаю,
    добавляю этот код
    Код (Text):
    1. $("audiо")[0].play();
    играет самая первая мелодия из первого блока, и нажимаю на остальные также играет мелодия первого блока во всех остальных блоках.
     
    #1 mister_ex_ex, 6 дек 2016
    Последнее редактирование: 6 дек 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    потому что ты всегда ссылаешься на первый тег audio.
    ты же через this менял css тому блоку на который нажали, так же поступай и с запуском audio.
    почитай что такое this в javascript.
     
    MouseZver и Deonis нравится это.
  3. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    спасибо за наводку, проблема возникает следующая, делаю я приложение крос-платформенное для своего будущего сайта заранее, на коде КОРДОВА через Intel xdk в браузере все работает идеально, а на телефоне андроид не так, проигрывается 30 файлов аудио, а потом перестает, проблема в буферации или в кеше?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    а где код?
     
  5. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    HTML:
    1. <!DOCTYPE html>
    2.  
    3.     <title>Blank App Designer Packaged Web App Project Template</title>
    4.     <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    5.  
    6.  
    7.     <!-- <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1"> -->
    8.     <meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=no">
    9.     <!-- <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes, minimum-scale=1, maximum-scale=2"> -->
    10.  
    11.     <style>
    12.     /* following three (cascaded) are equivalent to above three meta viewport statements */
    13.     /* see http://www.quirksmode.org/blog/archives/2014/05/html5_dev_conf.html */
    14.     /* see http://dev.w3.org/csswg/css-device-adapt/ */
    15.         @-ms-viewport { width: 100vw ; min-zoom: 100% ; zoom: 100% ; }          @viewport { width: 100vw ; min-zoom: 100% zoom: 100% ; }
    16.         @-ms-viewport { user-zoom: fixed ; min-zoom: 100% ; }                   @viewport { user-zoom: fixed ; min-zoom: 100% ; }
    17.         /*@-ms-viewport { user-zoom: zoom ; min-zoom: 100% ; max-zoom: 200% ; }   @viewport { user-zoom: zoom ; min-zoom: 100% ; max-zoom: 200% ; }*/
    18.     </style>
    19.  
    20.     <link rel="stylesheet" href="css/app.css">
    21.  
    22.     <!-- IMPORTANT: Do not include a weinre script tag as part of your release builds! -->
    23.     <!-- Place your remote debugging (weinre) script URL from the Test tab here, if it does not work below -->
    24.     <!-- <script src="http://debug-software.intel.com/target/target-script-min.js#insertabiglongfunkynumberfromthexdkstesttab"></script> -->
    25.  
    26.     <!-- Recommended location for your JavaScript libraries -->
    27.     <!-- These library references (below) are just examples to give you the general idea... -->
    28.     <!-- <script src="lib/mc/hammer.js"></script> -->
    29.     <!-- <script src="lib/ft/fastclick.js"></script> -->
    30.  
    31. <!--
    32.  * cordova.js is a phantom lib for "Cordova HTML5 web app," it does nothing in a "Standard HTML5 web app"
    33.  * Seeing a "Failed to load resource: net::ERR_FILE_NOT_FOUND" message caused by this "cordova.js" script?
    34.  * The cordova.js script is required if you convert your "Standard HTML5" project into a "Cordova" project.
    35.  * You can safely ignore the error or comment out this line if you will not be developing a Cordova app.
    36. -->
    37.     <script src="cordova.js" id="xdkJScordova_"></script>
    38.     <script src="js/jquery-3.1.1.min.js"></script>
    39.     <script src="js/app.js"></script>           <!-- for your event code, see README and file comments for details -->
    40.     <script src="js/init-app.js"></script>      <!-- for your init code, see README and file comments for details -->
    41.     <script src="xdk/init-dev.js"></script>     <!-- normalizes device and document ready events, see file for details -->
    42. </head>
    43.  
    44.  
    45.     <script src="http://debug-software.intel.com/target/target-script-min.js#insertabiglongfunkynumberfromthexdkstesttab"></script>
    46.    
    47.    
    48.    
    49.    
    50.     <div class="test">
    51.       <p>test-1</p>
    52.       <audio class="audi"  src="mp3/animals001.mp3"></audio>
    53.   </div>
    54.   <div class="test">
    55.       <p>test-2</p>
    56.       <audio class="audi"  src="mp3/animals002.mp3"></audio>
    57.   </div>
    58.   <div class="test">
    59.       <p>test-3</p>
    60.       <audio class="audi"  src="mp3/animals003.mp3"></audio>
    61.   </div>
    62.   <div class="test">
    63.       <p>test-4</p>
    64.       <audio class="audi"  src="mp3/animals004.mp3"></audio>
    65.   </div>
    66.   <div class="test">
    67.       <p>test-5</p>
    68.       <audio class="audi"  src="mp3/animals005.mp3"></audio>
    69.   </div>
    70.   <div class="test">
    71.       <p>test-6</p>
    72.       <audio class="audi"  src="mp3/animals006.mp3"></audio>
    73.   </div>
    74.   <div class="test">
    75.       <p>test-7</p>
    76.       <audio class="audi"  src="mp3/animals007.mp3"></audio>
    77.   </div>
    78.   <div class="test">
    79.       <p>test-8</p>
    80.       <audio class="audi"  src="mp3/animals008.mp3"></audio>
    81.   </div>
    82.   <div class="test">
    83.       <p>test-9</p>
    84.       <audio class="audi"  src="mp3/animals009.mp3"></audio>
    85.   </div>
    86.   <div class="test">
    87.       <p>test-10</p>
    88.       <audio class="audi"  src="mp3/animals010.mp3"></audio>
    89.   </div>
    90.   <div class="test">
    91.       <p>test-11</p>
    92.       <audio class="audi"  src="mp3/animals011.mp3"></audio>
    93.   </div>
    94.   <div class="test">
    95.       <p>test-12</p>
    96.       <audio class="audi"  src="mp3/animals012.mp3"></audio>
    97.   </div>
    98.   <div class="test">
    99.       <p>test-13</p>
    100.       <audio class="audi"  src="mp3/animals013.mp3"></audio>
    101.   </div>
    102.   <div class="test">
    103.       <p>test-14</p>
    104.       <audio class="audi"  src="mp3/animals014.mp3"></audio>
    105.   </div>
    106.   <div class="test">
    107.       <p>test-15</p>
    108.       <audio class="audi"  src="mp3/animals015.mp3"></audio>
    109.   </div>
    110.   <div class="test">
    111.       <p>test-16</p>
    112.       <audio class="audi"  src="mp3/animals016.mp3"></audio>
    113.   </div>
    114.   <div class="test">
    115.       <p>test-17</p>
    116.       <audio class="audi"  src="mp3/animals017.mp3"></audio>
    117.   </div>
    118.   <div class="test">
    119.       <p>test-18</p>
    120.       <audio class="audi"  src="mp3/animals018.mp3"></audio>
    121.   </div>
    122.   <div class="test">
    123.       <p>test-19</p>
    124.       <audio class="audi"  src="mp3/animals019.mp3"></audio>
    125.   </div>
    126.   <div class="test">
    127.       <p>test-20</p>
    128.       <audio class="audi"  src="mp3/animals020.mp3"></audio>
    129.   </div>
    130.   <div class="test">
    131.       <p>test-21</p>
    132.       <audio class="audi"  src="mp3/animals021.mp3"></audio>
    133.   </div>
    134.   <div class="test">
    135.       <p>test-22</p>
    136.       <audio class="audi"  src="mp3/animals022.mp3"></audio>
    137.   </div>
    138.   <div class="test">
    139.       <p>test-23</p>
    140.       <audio class="audi"  src="mp3/animals023.mp3"></audio>
    141.   </div>
    142.   <div class="test">
    143.       <p>test-24</p>
    144.       <audio class="audi"  src="mp3/animals024.mp3"></audio>
    145.   </div>
    146.   <div class="test">
    147.       <p>test-25</p>
    148.       <audio class="audi"  src="mp3/animals025.mp3"></audio>
    149.   </div>
    150.   <div class="test">
    151.       <p>test-26</p>
    152.       <audio class="audi"  src="mp3/animals026.mp3"></audio>
    153.   </div>
    154.   <div class="test">
    155.       <p>test-27</p>
    156.       <audio class="audi"  src="mp3/animals027.mp3"></audio>
    157.   </div>
    158.   <div class="test">
    159.       <p>test-28</p>
    160.       <audio class="audi"  src="mp3/animals028.mp3"></audio>
    161.   </div>
    162.   <div class="test">
    163.       <p>test-29</p>
    164.       <audio class="audi"  src="mp3/animals029.mp3"></audio>
    165.   </div>
    166.   <div class="test">
    167.       <p>test-30</p>
    168.       <audio class="audi"  src="mp3/animals030.mp3"></audio>
    169.   </div>
    170.   <div class="test">
    171.       <p>test-31</p>
    172.       <audio class="audi"  src="mp3/animals031.mp3"></audio>
    173.   </div>
    174.   <div class="test">
    175.       <p>test-32</p>
    176.       <audio class="audi"  src="mp3/animals032.mp3"></audio>
    177.   </div>
    178.   <div class="test">
    179.       <p>test-33</p>
    180.       <audio class="audi"  src="mp3/animals033.mp3"></audio>
    181.   </div>
    182.   <div class="test">
    183.       <p>test-34</p>
    184.       <audio class="audi"  src="mp3/animals034.mp3"></audio>
    185.   </div>
    186.   <div class="test">
    187.       <p>test-35</p>
    188.       <audio class="audi"  src="mp3/animals035.mp3"></audio>
    189.   </div>
    190.   <div class="test">
    191.       <p>test-36</p>
    192.       <audio class="audi"  src="mp3/animals036.mp3"></audio>
    193.   </div>
    194.   <div class="test">
    195.       <p>test-37</p>
    196.       <audio class="audi"  src="mp3/animals037.mp3"></audio>
    197.   </div>
    198.   <div class="test">
    199.       <p>test-38</p>
    200.       <audio class="audi"  src="mp3/animals038.mp3"></audio>
    201.   </div>
    202.   <div class="test">
    203.       <p>test-39</p>
    204.       <audio class="audi"  src="mp3/animals039.mp3"></audio>
    205.   </div>
    206.   <div class="test">
    207.       <p>test-40</p>
    208.       <audio class="audi"  src="mp3/animals040.mp3"></audio>
    209.   </div>
    210. </body>
    211. </html>
    212.  
    код jquery
    Код (Javascript):
    1. $(document).ready(function(){
    2.     alert('fug');
    3.     $('.test').click(function(){
    4.         //$(this).css({'background' : '#fff000'});
    5.         $(this).children('audio')[0].play();
    6.         $('.test').css('background', '#000');
    7.         $(this).css({'background': '#fff000'});
    8.         console.log( "нажата кнопка!");
    9.     });
    10. });
    приложение на intel xdk код cordova, в консоли пишет что кнопки нажимается, а воспроизводит 33 файла а потом просто перестает, хотя воспроизводится не зависимо от начала или от конца, в чем проблема я не понимаю, в браузере все работает идеально, упаковал под андроид, тестировал на несколько реальных устройств, асус зенфон 550, самсунг нот 3 и тп, и у всех одно и тоже. в чем может быть проблема?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    дай audio тегам уникальные id и вместо проигрывания, выведи их и посмотри, чтобы выводился 1 нужный
     
  7. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    спасибо час попробую, тока вот не совсем понимаю как нему
    Код (Text):
    1. $(this).children('audio')
    консоль прописать и чтоб отображал id этого элемента?
     

    Вложения:

    • web2.png
      web2.png
      Размер файла:
      53 КБ
      Просмотров:
      2
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    выводи в консоль
    --- Добавлено ---
    можно и alert делать, чтобы на телефоне проверить если там не настроена отладка
     
  9. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    Код (Text):
    1.  function mir(){
    2.         console.log( "Игрaет аудио!");
    3.     }
    4.  
    5.     $('.test').click(function(){
    6.         $(this).children('audio',mir)[0].play();
    не работает, что то я совсем туплю где тут ошибка?
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    посмотри документацию по children
    --- Добавлено ---
    разве она принимает два аргумента? и где id из this выводиться?
     
  11. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    все голова кругом, погуглил
    нашел вот это
    Код (Text):
    1. console.log($(this).children('audio')[0].play());
    web2 — копия.png
    но в программе выводит undefined, да же на том 33 элементе, а в браузере все работает и выводит вот так
    web2 — копия.png
    твой вариант как реализовать даже не знаю.
     
  12. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    код html
    HTML:
    1. <div class="test">
    2.       <p>test-1</p>
    3.       <audio class="audi" id="t-1"  src="mp3/animals001.mp3"></audio>
    4.   </div>
    таких 40 для теста

    погуглив нашел и выполнил вот так
    Код (Text):
    1. $('.test').click(function(){
    2.    
    3.         $(this).children('audio').each(function(index,Element){
    4.             console.log('id:', $(Element).attr('id'));
    5.             $(this)[0].play();
    6.          
    7.         });
    8.         $('.test').css('background', '#000');
    9.         $(this).css({'background': '#fff000'});
    10.         console.log( "нажата кнопка!");
    11.     });
    выводит id

    web2 — копия.png
    нажимается на все 40 элементов и выводит у всех 40 атрибутов id, не играет так же 33 файл МР3 вот фото консоли

    web2 — копия.png

    как дальше быть?
     
    #12 mister_ex_ex, 7 дек 2016
    Последнее редактирование: 7 дек 2016
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Думаю проблема в each.

    Этот код на мобильном будет выдавать атрибут src только того audio тега по которому нажали?
    Код (Javascript):
    1. $('.test').click(function(){
    2.   alert($(this).children('audio').attr('src'));
    3.   //console.log($(this).children('audio').attr('src'));
    4. });
     
  14. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    добавил этот код и дало такие результаты:
    1 - по нажатию на 32 элемент звук начинает играть после нажатия на ОК, и загорается желтым 32 второй элемент.
    Screenshot_20161208-131313.jpg Screenshot_20161208-131322.jpg
    2 - по нажатию на 33 элемент выходит также алерт с МР3 файлом, после нажатия на ОК звук не играет, а 33 элемент загорается желтым
    Screenshot_20161208-131334.jpg Screenshot_20161208-131345.jpg
    как дальше быть?
    может мне в архив запаковать и выложить на гугл-драйв, + приложение андроид.арк?
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    как запускаешь звук? Прошлый нужно останавливать?

    можно, но ты и так нужный код показываешь
     
  16. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    да останавливаю звук после нажатия на следующий, вот код который в самой программе выводит: что нажато, id нажатого, путь файла , так и в консоле и с алертом выводит.
    Код (Text):
    1. $('.test').click(function() {
    2.   var index =$('.test audio').index($(this).find('audio'));
    3.   if (!$(this).find('audio')[0]||$(this).find('audio')[0].readyState===0) {
    4.     alert('no audio source')
    5.   } else {
    6.     $(this).find('audio')[0].load();
    7.     $(this).find('audio')[0].play();
    8.      $('.test audio').each(function(){
    9.      if(!this.paused && $('.test audio').index(this)!=index){
    10.      this.pause();
    11.      this.currentTime = 0;
    12.      }else if(!this.paused && $('.test audio').index(this)==index){
    13.      $('#block').text('Нажат блок: '+$(this).prev().text()+'; играет аудио id: '+$(this).attr('id')+'; путь аудио: '+$(this).attr('src'));
    14.      console.log('Нажат блок: '+$(this).prev().text()+'; играет аудио id: '+$(this).attr('id')+'; путь аудио: '+$(this).attr('src'));
    15.      alert('Нажат блок: '+$(this).prev().text()+'; играет аудио id: '+$(this).attr('id')+'; путь аудио: '+$(this).attr('src'));
    16.      }
    17.   });
    18.     $('.test').css('background', '#000');
    19.     $(this).css({
    20.       'background': '#fff000'
    21.     });
    22.   }
    23. });
    фото что выводит на телефоне и в консоли
    Screenshot_20161208-154503.jpg Screenshot_20161208-154518.jpg web2 — копия.png

    вот сам архив интеловский, все содержимое находится в папке www, в браузере все работает идеально.
    https://drive.google.com/file/d/0B-o5bnTzM0H3WWVldnVFTUJzZUE/view?usp=sharing

    а вот сам арк файл андроидовский, который мне мозг выносит вот уже 5-тый день, у него и проблема.
    https://drive.google.com/file/d/0B-o5bnTzM0H3UHlTWXRPejBzM0U/view?usp=sharing

    проверял только на реальных устройствах, на своем родном интеловском эмуляторе вообще звуков не воспроизводит.
     
    #16 mister_ex_ex, 8 дек 2016
    Последнее редактирование: 8 дек 2016
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    надо перепроверить каждую строчку кода, это долго и нудно, по идее это нужно было делать при написании,
    советую всё стереть и начать с нуля, по ходу написания и усложнения программы, перепроверять каждый шаг
     
  18. mister_ex_ex

    mister_ex_ex Новичок

    С нами с:
    12 сен 2016
    Сообщения:
    38
    Симпатии:
    1
    это тестовая программа, я его и начал с нуля, тут участвуют три файла, index.html, app.css, app.js весь код который выкладывал тут, тоже самое и там.