基本的JQuery问题

时间:2011-06-22 18:02:35

标签: javascript jquery function selector document-ready

我有以下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请求。我的应用程序在application.js文件中一次加载所有JQuery文件。我如何使用JQuery来指定除文档准备之外的东西以及理想的选择器是什么?

6 个答案:

答案 0 :(得分:2)

您可以根据您希望代码触发的页面上是否存在元素来执行条件化。

从另一个问题复制:

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

if ($(selector).exists())
{
    // your code here
}

答案 1 :(得分:2)

您可以在正文标记中添加class

$(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 :(得分:2)

难道你不能只将代码包含在你希望它运行的一个页面上吗?

您可以在<html>标记之间的某处:

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

将问题中的代码放在<script>标记之间。

答案 3 :(得分:1)

使用window.location.href检查文件位置,然后使用if语句:

if(window.location.href == 'whatever.html'){
    $(document).ready(function() { 
           ...
    })
}

答案 4 :(得分:1)

您可以查看location媒体资源,了解您所在的页面。

您还可以检查是否存在元素:

if ($("something").length)

答案 5 :(得分:0)