好吧,这里是我的代码,它被存储在外部js文件,并适当地包括在头节主HTML。
$(document).ready(function(){
var checkForConfirmation = function(){
for(var i=0; i<myOrders.length; i++){
$.ajax({
type: "GET",
url: "orderStatus.php",
data: {action: 'get', id: myOrders[i]},
success: function(data){
if (data){
var reply = jQuery.parseJSON(data);
$("#fancyAlertLink").fancybox().trigger('click');
myOrders.splice(myOrders[i], 1);
}
}
});
if (myorders.length == 0){
clearInterval(waitForRestourantInterval);
}
}
}
if (myOrders.length > 0){
var waitForRestourantInterval = setInterval(function(){checkForConfirmation()}, 5000);
}
});
正如你所看到的,我想显示的fancybox当后端脚本(“orderStatus.php”),得到正确的数据。
如果我不使用jQuery(例如:window.alert代替的fancybox)一切正常,但是当我尝试使用jQuery这个函数中,我得到一个奇怪的错误。
萤火虫说,有上线的错误$("#fancyAlertLink").fancybox().trigger('click');
没有错误的描述,仅仅是“$(”
我究竟做错了什么???
抱歉。 我知道这是不是一个答案,但我不能把它所有的评论。 这里是“更新”的代码。 现在错误消失了,但仍的fancybox将不会从我的脚本触发。
编辑:触发器不会成功函数内部时工作。 我试图向外移动的,它工作。 问题是,我真的需要它的成功里面。 我试图在移动单独的函数触发调用,并呼吁从成功中的作用,但同样的结果。 不行! 有什么建议么?
confirmationDaemon.js
$(document).ready(function(){
var checkForConfirmation = function(){
for(var i=0; i<myOrders.length; i++){
$.ajax({
type: "GET",
url: "orderStatus.php",
data: {action: "get", id: myOrders[i]},
context: i,
success: function(data){
if(data!="null"){
var reply = jQuery.parseJSON(data);
$("#fancyAlertLink").trigger("click");
myOrders.splice(this, 1);
}
}
});
if (myOrders.length == 0){
clearInterval(waitForRestourantInterval);
}
}
}
if (myOrders.length>0){
var waitForRestourantInterval = setInterval(function(){checkForConfirmation()}, 5000);
}
});
主HTML文件:(智者+ HTML,Smarty的{}文字在这个岗位忽略标签)
<html>
<head>
<script src="jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="fancyBox/jquery.fancybox-1.3.4.pack.js" type="text/javascript"></script>
<link rel="stylesheet" href="fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<script type="text/javascript">
var myOrders = new Array();
{foreach from=$smarty.session.my_orders item=id}
myOrders.push({$id}):
{/foreach}
</script>
<script type="text/javascript">
$(document).ready(function{
$("#fancyAlertLink").fancybox();
});
</script>
<script src="confirmationDaemon.js" type="text/javascript"></script>
</head>
<body>
--- some content here ---
<a id="fancyAlertLink" href="#fancyAlert">Show fancy</a>
<div style="display:none">
<div id="fancyAlert">Fancybox hell yeah!!!</div>
</div>
</body>
</html>
如预期设定的时间间隔和AJAX的工作。 在显示的fancybox当我点击“显示看中”链接。 但它并不会从外部JS触发。 我调试了。 它应该工作,它执行的是行,但似乎没有什么