我有以下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来指定除文档准备之外的东西以及理想的选择器是什么?
答案 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)