2017-01-03 5 views
0

Я пытаюсь изменить событие click на своем теге <a>.Событие нажатия на <a> тег не работает в JQuery

<!DOCTYPE html> 
 

 
<html lang="en"> 
 

 
    <head> 
 
     <meta charset="UTF-8"> 
 

 
     <title>JQuery test</title> 
 

 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
     <script> 
 
      $(document).ready(function() { 
 
       alert('doc. ready'); 
 
    
 
       $('#id_product_quick').on('click', function (e) { 
 
        alert('click'); 
 
    
 
        e.preventDefault(); 
 
    
 
        loading(); 
 
    
 
       }) 
 
    
 
      }); 
 

 
     </script> 
 

 
    </head> 
 

 
    <body> 
 
     <a id="#id_product_quick" class="col-md-4" href="/scr/quick/3/"><img style="width: 200px" src="/static/img/icons/Button.png"></a> 
 

 
    </body> 
 

 
</html>

Нагрузки и оповещение JavaScript $(document).ready с успехом, но когда я нажимаю на <a> теге, я перенаправлен к первоначальному HREF, когда я хочу, чтобы избежать действий по умолчанию или предупреждение " нажмите».

Может ли кто-нибудь помочь мне с моей проблемой?

ответ

3

Удалить # из атрибута Id HTML.

<a id="id_product_quick" class="col-md-4" href="/scr/quick/3/"><img style="width: 200px" src="/static/img/icons/Button.png"> </a> 

или избежать мета-символ # с \\ от выбора при присоединении обработчик события

$('#\\#id_product_quick').on('click', function (e) { 
    alert('click'); 
    e.preventDefault(); 
    loading(); 
}) 

См Docs

Чтобы использовать любой из мета-символов (например,!» # $% & '() * +,./:; < =>? @ []^`{|} ~) Как буквальная часть имени, его следует экранировать с помощью двух обратных косых черт: \\.

 Смежные вопросы

  • Нет связанных вопросов^_^