2014-12-08 2 views
-1

Это должно быть очень просто, но я ржав на javascript и не могу заставить его работать так, как я этого хочу.javascript, чтобы предотвратить ссылку от стрельбы

У меня есть виджет, который вставляет следующий базовый DOM. Виджет позволяет мне не присвоить идентификатор, который я использовал, чтобы назначить идентификатор «не следуйте»:

<div id="no-follow"> 
    <article id="post-1"> 
     <h2> 
      <a> ... </a> 
     </h2> 
    </article> 
    <article id ="post-2"> 
     <h2> 
      <a> ... </a> 
     </h2> 
    </article> 
</div> 

Я нашел следующий JavaScript, что «должны» работать:

<script type="text/javascript"> 
    //click event example 
    $('#no-follow a').click(function(event){ 
    if(event.preventDefault){ 
     event.preventDefault(); 
    } else { 
     event.returnValue = false; 
    } 
     // continue on with event 
    }); 
</script> 

Но я не могу» t заставить его подавить ссылку. Что я делаю не так?

+4

Если этот сценарий размещен, это важно. Если в 'head' до того, как содержимое было загружено, оно не будет находить элементы (они еще не существуют) для привязки. Вы можете использовать событие [ready] (http://api.jquery.com/ready/), чтобы дождаться загрузки документа –

+0

Опубликовать соответствующий образец HTML-метки, привязанный тег без атрибута href ничего не делает при нажатии –

ответ

0

Вам не нужно писать, если утверждение ... это уже происходит.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#no-follow a').click(function(event){ 
     event.preventDefault(); 
     // continue on with event 
     }); 
    }); 
</script> 
+3

Но тогда почему код OP не работает ??? –

+0

@ A.Wolff Из-за '' if() '' check. '' PreventDefault() '' истинно, поэтому он запускает содержащее '' preventDefault'', однако '' else'' никогда не запускается, поэтому '' returnValue = false; '' никогда не запускается. Это решение работает корректно в jsfiddle. http://jsfiddle.net/k8hzc3o5/ – TheElm

+0

@ TheElm У OP есть одно и то же поведение: http://jsfiddle.net/k8hzc3o5/1/ –