AJAX,jQuery-如果设置了$#u GET[';var';],如何设置一个容器的动画并淡入另一个加载新内容的容器?
我在AJAX,jQuery-如果设置了$#u GET[';var';],如何设置一个容器的动画并淡入另一个加载新内容的容器?,jquery,ajax,function,get,hyperlink,Jquery,Ajax,Function,Get,Hyperlink,我在/pages/home.php中有一个index.php包含home.php。如果单击该表特定列中的元素(日志文件),则包含#pickups-表的.main-容器将.animate()加载到特定大小,新内容将加载到.pickup-容器中,并在.main-容器的正下方淡入 现在我确实想支持直接链接,因此如果您链接到网站.tld/?pickup=name我希望#pickups-表成为动画(),就像您在#pickups-表中单击一个日志文件元素一样 您可以在此处尝试以下示例: 正常链接(您必须单击
/pages/home.php
中有一个
<如果没有设置其他页面,则默认情况下code>index.php包含home.php
。如果单击该表特定列中的元素(日志文件),则包含#pickups
-表的.main
-容器将.animate()
加载到特定大小,新内容将加载到.pickup
-容器中,并在.main
-容器的正下方淡入
现在我确实想支持直接链接,因此如果您链接到网站.tld/?pickup=name我希望#pickups
-表成为动画()
,就像您在#pickups
-表中单击一个日志文件元素一样
您可以在此处尝试以下示例:
$\u GET['pickup']
时自动发生,就像在表的logfiles列中单击日志文件时一样):$(document).ready(function(){})
范围内
var mainIsCollapsed = 0;
var mainLastHeight = 0;
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function() {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
//if direct link was clicked
if($_GET['pickup'] != null) {
var pickup = $_GET['pickup'];
alert('var pickup: ' + pickup);
loadPickup(pickup);
}
//if td element is clicked
$('#pickups td:first-child').click(function() {
loadPickup($(this).attr('name'));
});
//fade out content and animate 'main' to its normal size
$('div.main').click(function() {
if($(':animated').length)
return false;
if(mainIsCollapsed == 1) {
$('div.pickup').fadeOut(250);
$(this).animate({
height: mainLastHeight
}, 600, function() {
mainIsCollapsed = 0;
});
}
});
//animate table and fade in content
var loadPickup = function(pickup) {
alert(pickup);
if($(':animated').length)
return false;
if(mainIsCollapsed == 0) {
mainLastHeight = $('div.main').height();
//collapse main frame
$('div.main').animate({
height:'50px'
}, 600, function() {
mainIsCollapsed = 1;
});
//load content
$('div.pickup').load('/pages/pickup.php?pickup=' + pickup, function() {
//fade in
$('div.pickup').fadeIn(300);
//some other code here for tooltips and such
});
}
问题是,当使用直接链接时,函数loadPickup(pickup)
从未执行过(消息框alert(pickup)
从未弹出,似乎所有jQuery脚本都停止工作)
文件:
index.php
加载上面的jQuery/javascriptindex.php
包括/pages/home.php
index.php
包含加载新内容后将显示的div.pick
/pages/pickup.php
是加载到div.pickup
/pages/home.php
包含.main
容器(要设置动画的容器),在该容器中,#pickups
表位于该容器中LoadPick('CTFCL-20130816-0132-openfire_lowgrens')直接在$(document).ready()
函数中调用,它也不会在那里调用它。相反,所有jQuery似乎都停止工作
我做错了什么?这个问题的解决方法相当简单;我习惯于用obj-c和Java编程。如果我将loadpick()
函数移动到$(document.ready()
的顶部,它就会工作。如果它是在调用下面定义的,那么jQuery在尝试执行它时还不知道该函数