0

我有以下 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 来指定文档准备之外的其他内容以及理想的选择器是什么?

4

6 回答 6

2

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

从另一个问题复制:

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

if ($(selector).exists())
{
    // your code here
}
于 2011-06-22T18:04:44.193 回答
2

您可以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); 
  }
});
于 2011-06-22T18:06:14.407 回答
2

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

<html>您可以拥有的标签之间的某处:

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

使用标签之间的问题中的<script>代码。

于 2011-06-22T18:10:04.520 回答
1

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

if(window.location.href == 'whatever.html'){
    $(document).ready(function() { 
           ...
    })
}
于 2011-06-22T18:05:21.200 回答
1

您可以查看该location属性以找出您所在的页面。

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

if ($("something").length)
于 2011-06-22T18:05:29.517 回答
0

看看这种组织你的 app.js 的方式

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

于 2011-06-22T18:04:54.533 回答