За последние 24 часа нас посетили 20074 программиста и 1715 роботов. Сейчас ищут 1464 программиста ...

событие click на bootom jquery

Тема в разделе "JavaScript и AJAX", создана пользователем amir_Mirov, 10 апр 2015.

  1. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Всем доброго времени суток. решил я зделать голосовалку с выводом модального окна с результатом
    решил использовать jquery но затык на событии. ув гуру подскажите что не так.
    имею форму
    Код (Text):
    1.  
    2. <form id='ajax-voite-form' action="script.php">
    3.     <button type="buttom" name='submit' class="btn btn-default btn-lg" >
    4.     <span class="glyphicon glyphicon-thumbs-up"></span><em>Нравится</em></button>
    5. </form>
    и сам jquery
    Код (Text):
    1.  
    2. <script type='text/javascript'>
    3.    
    4.         $('#ajax-voite-form').bind('click', function(){
    5.           alert('Вы нажали на элемент ');
    6.         });
    7. </script>
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    мб сценарий выполняется до появления указанного текста в документе?
     
  3. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    нет. alert не отрабатывает

    Добавлено спустя 3 минуты 48 секунд:
    <script type='text/javascript'>
    alert('Вы нажали на элемент ');
    $('#ajax-voite-form').bind('click', function(){
    alert('Вы нажали на элемент ');
    });
    </script>
    вынес alert отрабатыват
    поставил заглушку в action и скрипт отработал .
    теперь нужно зделать так чтобы вместо перехода по сылке action ана обрабатывалась в jquery и после было вызванно модальное окно с результаом исполнения.
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ты вообще понял о чем тебе сказали перед тем как ты увтердительно возразил?
     
  5. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    на самом деле ничего странного - НЕТ!
    потому что html форма отправляется не по "clik", а по "submit" ;)
     
  6. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    спасибо за одыкватный ответ.
    можно пример буду очень признателен.
     
  7. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    type="buttom"
    Это во первых.
    А во вторых, если вы уже используете <button> нахера опять тип button?
    type="submit" а форме добавьте onsubmit="".
    HTML:
    Код (PHP):
    1. <form id='ajax-voite-form' action="script.php" onsubmit="return send(this)">
    2.    <button type="submit" name='submit' class="btn btn-default btn-lg" >
    3.    <span class="glyphicon glyphicon-thumbs-up"></span><em>Нравится</em></button>
    4. </form> 
    JavaScript:
    Код (PHP):
    1. fucntion send(form) {
    2.     alert('Вы отправляете форму:'+form.id+' на адрес: '+form.action);
    3.     return false;
    4. } 
    А дальше делайте сериализацию формы и вперед... ;)
     
  8. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    спасибо
     
  9. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    Нашел код в котором говорится о том что браузер не будит переходить при клике
    но переход происходит . что не правильно в коде?
    jquery
    Код (Text):
    1.  
    2. $(document).ready(function(){
    3.     $('a').bind('click',clickHandler);
    4. });
    5. function clickHandler(eventObject)
    6.     {
    7.         eventObject.preventDefault();
    8.         alert($(eventObject.target).attr('href'));
    9.        
    10.         return false;
    11.     }
    html
    Код (Text):
    1.  
    2. <a href="http://google.com" id="tt">ссылка</a><br />
     
  10. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а бинд-то происходит?
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    У меня не происходит, вот пруф - https://jsfiddle.net/rw55xt1y/.

    А у тебя происходит, потому что ты JQuery не подключил. У тебя в консоли, до кучи, при проверке этого кода стопудово сказано что-то про $ is undefined. Но отладка для слабаков, верно? :)
     
  12. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    да даже если подключил - если сценарий выполняется до появления в доме нужной ветки - он выполняется впустую.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Это исключено, потому как там:

    Это значит, что все внутри этой конструкции будет выполнено только после сборки страницы. На фиддле, что я вбросил, для этого когда указано прописывание в head, то есть вообще заведомо до тела страницы. Работает, как видишь.
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а. у меня-то первый листинг закэширован в мозгах
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ты не представляешь, как часто люди пытаются юзать JQuery и прочие разные мутулсы и прототайпы, просто копипастя код для них, но не подключая сами либы, просто потому, что не совсем понимают, что это и как :)
     
  16. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    undefined выводится в модальном окне
    я не силен в js но могу сказать что библиотека подключенна.
    отрабатывало у меня по всей видимости потому что я не правильно пытаюсь обратится к элементу с id
    было
    Код (Text):
    1.  
    2. $(document).ready(function(){
    3.    $('a #tt').bind('click',clickHandler);
    4. });
    5. function clickHandler(eventObject)
    6.    {
    7.       eventObject.preventDefault();
    8.       alert($(eventObject.target).attr('href'));
    9.      
    10.       return false;
    11.    }
    зделал
    Код (Text):
    1.  
    2. $(document).ready(function(){
    3.    $('#tt').bind('click',clickHandler);
    4. });
    5. function clickHandler(eventObject)
    6.    {
    7.       eventObject.preventDefault();
    8.       alert($(eventObject.target).attr('href'));
    9.      
    10.       return false;
    11.    }
    алерт выводится , но вместо сылки выходит undefined
    код html
    Код (Text):
    1.  
    2. <a href="http://test.loc/contr/fun/3" id="tt">
    3.     <button name='submit' class="btn btn-default btn-lg" >
    4.     <span class="glyphicon glyphicon-thumbs-up"></span><em>Нравится</em></button>
    5. </a>
    убрал вложеность
    Код (Text):
    1.  
    2. <a href="http://test.loc/contr/fun/3" id="tt">
    3.    
    4.     Нравится
    5. </a>
    все отработало как нужно.
    проблема решена:
    Код (Text):
    1.  
    2.  
    3.     <button name='submit' class="btn btn-default btn-lg" >
    4.     <span class="glyphicon glyphicon-thumbs-up">
    5.        </span>
    6.         <em>
    7.         <a href="http://test.loc/contr/fun/3" id="tt">Нравится</a>
    8.        </em>
    9. </button>
    всем благодарен
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не нужно использовать ссылки вместо кнопок.
     
  18. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    тогда вместо
    Код (Text):
    1. attr('href')  использовать  attr('value')
    как бы вы зделали ?
     
  19. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    В таком случае нужно воспользоваться объектом this в теле callback функции.
    Код (PHP):
    1. $(document).ready(function() {
    2.     $('a').click(click);
    3.     //$('a').bind('click',click); // работает
    4. });
    5. function click() {
    6.     alert(this.href);
    7.     //alert($(this).attr('href')); // работает
    8.     return false;        
    9. }
    https://jsfiddle.net/rw55xt1y/12/
    Ну, а для от правки запросов использовать $.post, $.get.
    Якобы без js не будет работать? Не будет ну... Ну хотя думаю никто его не отключает просто так.
     
  20. amir_Mirov

    amir_Mirov Новичок

    С нами с:
    25 сен 2014
    Сообщения:
    90
    Симпатии:
    0
    решил таким способом
    Код (Text):
    1.  
    2. $(document).ready(function(){
    3.          $('.voite').bind('click',clickheandler);
    4. });
    5. function clickheandler(eO)
    6.             {
    7.             eO.preventDefault();
    8.                 alert($(eO.target).attr('value'));
    9.                 return false;
    10.                
    11.             }
    html
    Код (Text):
    1.  
    2. <button name='submit'
    3.     class="btn btn-default btn-lg"   >
    4.     <span class="glyphicon glyphicon-thumbs-up"></span><em
    5.      value="<?=base_url();?>users/voice/<?=$data['id_site'];?>" class="voite">Нравится</a>
    6.     </em>
    7.     </button>
    теперь вместо вывода алерт нужно отправить ajax запрос получить оответ вывести в модальное окне
     
  21. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Код (PHP):
    1. function clickheandler() {
    2.     alert(this.value);
    3.     return false;
    4. }
    Работает!
    Но, аттрибута value у этого элемента быть не может, по этому советую воспользоваться аттрибутом " data, data-* "
    А у jqery есть специальный метод .data().


    И у вас косяк </a> закрыта, а самой ссылки нет.
     
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Якобы ссылки это ссылки, а для создания кнопок есть кнопки.
     
  23. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Это мало важно.
    Ты не ответил на вопрос.
     
  24. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ды при чем тут js-не-js? Кнопки это кнопки. А ссылки - это ссылки. Использование ссылок вместо кнопок - это моветон из 90х еще, наверное.