Код jQuery работает в Firebug, но не сам по себе - PullRequest
2 голосов
/ 14 июня 2010

У меня прямо сейчас мозговой вопрос проблемы.Я пытаюсь изменить хеш-тег ссылки в конце с «ответить» на «комментарии» с помощью jQuery.У меня есть простой скрипт, который должен это сделать, однако он не работает.Ссылка не меняется.Однако Firebug не показывает ошибок, и когда я запускаю код в консоли Firebug, он работает так, как я намереваюсь.Почему это не работает само по себе?У кого-нибудь есть решение, я в своем уме с этим.

(function ($) { 
  $(document).ready(function() {
    $("a[href$='respond']").each(function() { 
        $(this).attr("href", $(this).attr('href').replace("respond", "comments"));
    });
  });
})(jQuery.noConflict());

Большое спасибо, я знаю, что это может быть больно, но я действительно благодарен.

Ответы [ 3 ]

5 голосов
/ 14 июня 2010

Ваш код должен работать нормально, но ваш тег скрипта искажен.У вас есть text/javscript вместо text/javascript.Также вы можете немного оптимизировать свой код:

<script type="text/javascript">
  jQuery(document).ready(function($){
    $("a[href$='respond']").attr("href", function(index, attr){
      return attr.replace("respond", "comments");
    });
  }).noConflict();
</script>
4 голосов
/ 14 июня 2010

Вы используете $(document).load() вместо $(document).ready().

(function ($) {
//---------------v
    $(document).load(function() {    
        $("a[href$='respond']").each(function() {
            $(this).attr("href", $(this).attr('href').replace("respond", "comments"));
        });  
    });
})(jQuery.noConflict());
0 голосов
/ 14 июня 2010

Почему бы просто:

jQuery(function($) {
  $("a[href$='respond']").each(function() { 
    $(this).attr("href", $(this).attr('href').replace("respond", "comments"));
  });
});

Если вы передаете функцию конструктору jQuery, она добавляет ее в прослушиватели DOM Ready и автоматически передает себя в качестве аргумента.

...