Основной вопрос JQuery - PullRequest
       31

Основной вопрос JQuery

0 голосов
/ 22 июня 2011

У меня есть следующий код JQuery, который обрабатывает запрос GET при загрузке страницы:

$(document).ready(function() {  
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });

  }, 30000); 
});

Проблема в том, что я хотел бы, чтобы этот запрос GET обрабатывался только на определенной странице. Мое приложение загружает все файлы JQuery одновременно, в файле application.js. Как я могу использовать JQuery для указания чего-то другого, кроме готового документа, и каким будет идеальный селектор?

Ответы [ 6 ]

2 голосов
/ 22 июня 2011

Не могли бы вы просто включить код на той странице, на которой хотите запустить?

Где-то между тегами <html> вы можете иметь:

<script type="text/javascript">
[...code...]
</script>

С кодом в вашем вопросе между тегами <script>.

2 голосов
/ 22 июня 2011

Вы можете добавить class к тегу body.

$(document).ready(function() {  
  if ($('body').hasClass('updateTweets')) {
  var refreshId = setInterval(function()
  {
       $('#tweets').fadeOut("slow").fadeIn("slow");
       $.get("/event", { event:$("input[name=event]").val(), }, function(data) {
         console.log(data.success);
         console.log(data.page_link);
         console.log('Succesfully Loaded Data from JSON FORMAT GET');
         $('#tweets').html(data.html);
         $('#pagelink').html(data.page_link);
       });

  }, 30000); 
  }
});
2 голосов
/ 22 июня 2011

Вы можете сделать условие, основанное на существовании элемента, который существует только на той странице, которую вы хотите, чтобы ваш код запускал.

Скопировано из другого вопроса:

jQuery.fn.exists = function()
{
    return jQuery(this).length > 0;
}

if ($(selector).exists())
{
    // your code here
}
1 голос
/ 22 июня 2011

Вы можете проверить свойство location, чтобы узнать, на какой странице вы находитесь.

Вы также можете проверить наличие элемента:

if ($("something").length)
1 голос
/ 22 июня 2011

Проверьте местоположение файла с помощью window.location.href, затем используйте выражение:

if(window.location.href == 'whatever.html'){
    $(document).ready(function() { 
           ...
    })
}
0 голосов
/ 22 июня 2011

Проверьте этот способ организации вашего app.js

http://weblogs.asp.net/jaimedelpalacio/archive/2011/03/23/a-way-to-organize-your-javascript-code.aspx

...