2010-12-01 65 views
-1

那么,这种情况可能已经为某些人所熟悉,因为我已经在它的相当长一段时间,但尽管比以往任何时候都还没有工作。我要说得非常清楚和详细,以明确指出它。调整URL并使JQUERY技巧工作完整代码100%完成

情景

我们有一个长的URL线后,其点击两件事情应该发生一次(目前的情况是,它ONY发生他们1或2)

1)jQuery是敏感在点击并打开滑盖面板

2)同样的jQuery有另一行这也使得面板内部的DIV来填充(感谢另一个PHP SQL供电文件)

那么,问题出在线。两个已经提出,没有真正的技巧1和2上面提到。尽管两者在语法上都是正确的,即点和引号的顺序是正确的,但没有一行打开幻灯片AND AND填充div。

一号线建议:

此行让滑动屏幕打开,但它不发送id_cruise值

$sOutput .= '"<a href=\"#\"' .' id=\"' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",'; 

二号线拟议

这行不公开,不填充或者是该面板内的DIV盒子(即使它未打开,您仍可以看到面板在哪里晃动)。如果你看行,在我看来,有可能不会需要是有一个额外的ID,这是它的两倍既说ID = id_cruise ....

$sOutput .= '"<a href=\"?id=' .addslashes($aRow['id_cruise']) .'\" id=\"' .addslashes($aRow['id_cruise']) .'\" class=\"flip\">'.addslashes($aRow['from_country']).'</a>",'; 

和jQuery的片段,应激活由链路的点击,并通过参数的传递是本

<script type="text/javascript"> 
$(document).ready(function(){ 
$('a.flip').live('click',function(){ 
    $(".panel").slideToggle("slow"); 
$('#reviews').load('SendIdToDatabase.php', {id_cruise: this.id}); 
    }); 
}); 

</script> 

AN备选代码片段提出YESTERDAY,但问题是相同的

<script type="text/javascript"> 
$(document).ready(function(){ 
$('a.flip').live('click',function(){ 
    $(".panel").slideToggle("slow"); 
    DoSomethingWith(this.id); 
    }); 
}); 

</script> 


<script type="text/javascript"> 
function DoSomethingWith(id) { 
    $.get("SendIdToDatabase.php", {id_cruise:"id"}, AnotherFunction); 
} 
function AnotherFunction(str) { 
$("#reviews").html(str);             
} 
</script> 

所以,这是它。想象它是如何工作的。试想一张桌子。那么,你点击一个链接,并且该表在幻灯片面板打开时下降。该面板里面有一个DIV,是,你看,加载名为SendIdToDatabase.php

UPDATE

好这一问题的PHP文件的内容,你会看到答案是不仅在链接上,但也在JQUERY片段的一行中,将值转发给sql php脚本。它有一个双引号,并会将该值作为文字字母发送。有人说这些报价不会有什么区别。我明确地告诉你它在世界上做了所有的改变。除此之外,建议的两个环节中,只有第一个工作,另一个不打开滑动面板。

更新的更新

Guffa或戈兰的深刻地指出,第二行则打开面板,但所发生的事情(成功地知道,即使没有看到它在视觉上!)在面板完成显示之前再次重新加载页面。我相信,我在评论说,说那是由于线的一部分的双repetion,这一个

'\" id=\"' .addslashes($aRow['id_cruise']) 

所以,无论是删除部分,使用的第一线。我用了第一行。

回答

0

一个问题肯定是你不停止链接的默认动作。我不确定第一行有什么问题(这可能是因为链接被执行而停止加载请求),但第二行将重新加载页面。使用preventDefault方法从以下链接停止浏览器:

$(document).ready(function(){ 
    $('a.flip').live('click',function(e){ 
    $(".panel").slideToggle("slow"); 
    $('#reviews').load('SendIdToDatabase.php', {id_cruise: this.id}); 
    e.preventDefault(); 
    }); 
}); 

有了它应该与你的任何线条的工作。这只是不同的URL,并没有被使用。

+0

问题解决了,我发布了我的答案,但实际上这是很多人的工作帮助,所以这是他们的答案实际上,我只是发现了一个小东西,是阻止工作的东西 – Alvaro 2010-12-01 22:46:16

1

那么,价值没有被传递的原因是,有双引号的id应该没有,这里id_cruise:"id"我在php脚本创建了一个打印id_cruise,看它是否曾经收到过的确值,并猜测它收到了什么? id

这就是它。把引号拿出来,你有一个变量而不是文字。就这样,所以,我不知道简化的代码片段是否可用,不想尝试。我只是从杰​​夫那里选择一个看起来设计得很好的人,因为你可以看到事件的逻辑连续性,所以不应该有这个原因不起作用的原因。感谢Jason今天早上的完美句法,并感谢所有帮助过的人。晚安