我遇到了AJAX和Jquery的问题 经过几个小时的研究,我最后在这里发帖。
您可以看到我的问题directly on my (nonfinished) website
当你到达页面时,Accueil上没有任何内容(这是正常的)
尝试1
点击Project =>
触发标题(正常)
发送Ajax请求以将项目页面加载到主div(正常)
('li')没有开始SlideDown(除非我第二次点击Project )
尝试2
转到提案 => (一切正常)再次转到项目 =>
代码
以下是用于触发项目滑动的代码:
$('li').livequery(function(){
var lis = $('#project-container ul').find('li');
$(lis).each(function(index) {
var li = $(this);
setTimeout(function() {
li.slideDown(400);
}, 300 * index);
});
});
我认为这与this question
的问题相同它必须是一个回调故事,其中var没有正确存储或其他东西 但遗憾的是我无法使用我的页面。
有人能帮助我吗?
答案 0 :(得分:0)
确保在加载页面后运行此代码。当我在90%的情况下遇到这种问题时,这就是原因。
答案 1 :(得分:0)
我不是实时查询的忠实粉丝(我没有看到使用默认.on()
方法的任何优势。(delegated ofc)。
对我来说,这似乎是一个过时的库:)
另一个暗示。使用参数调用正确的方法,以全局定义东西。如果你像这样定义全局的东西,那么你将会忽略变化的内容。
使用tripple equal ===
和!==
进行比较。而不是==
它将避免意外的误报。
在function GoToLink () { if (WrapLink == 1) {
中你比较一个表示可以调用js函数的url的字符串和1.为什么?
为什么不在改变window.location
时调用ajax方法?
为什么你需要一个额外的ajax库,因为你使用jquery就可以使用jquery's default ajax implemention:
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
让您走上正确轨道的几个想法
的更新:强> 的
在documentation中描述了on方法的使用,你应该使用它委托,这意味着你将它应用于父容器并给孩子一个。
$(' ul')。on('点击',' li',function(){ //做一点事 });
我在没有通过活动的情况下忽略了功能。
$('li').livequery(function () {
var lis = $('#project-container ul').find('li');
$(lis).each(function (index) {
var li = $(this);
setTimeout(function () {
li.slideDown(400);
}, 300 * index);
});
});
这里最简单的方法是使用方法并在添加列表项时调用它。
function slideDownListitems($lis){
$lis.each(function (i) {
setTimeout(function () {
$(this).slideDown(400);
}, 300 * i);
});
}
//when a listitem is added call
slideDownListitems( $('#project-container ul li') );
一周的好工作JS!我稍后会更深入地研究其余内容并给你一个更新(现在正在工作)grtz