此函数获取一个参数并将其传递给此
$.arte({'ajax_url':'getRealTimeUpdates.php?activity_id='+id, 'on_success':updateLiveUpdates}).start();
[这行代码从服务器中获取upadtes每个a 特定时间段作为jaxed循环]
当我使用某个参数调用函数showLiveUpdates(id)
时,例如id=5
,此行记住id = 5,所有这些函数调用甚至不同的参数!
我希望每次用不同的id
调用该函数时,这行代码都会得到新的id
{{其中arte是JQuery插件:Ajax实时扩展,这是它的网站click here}}
js code:
function showLiveUpdates(id)
{
//$.arte().stop();
$("#liveUpdates").fadeIn("slow");
$("#liveUpdates").html("");
$("#liveUpdates").append("<div><textarea rows='2' cols='49' id='txtLiveUpdates'></textarea></div>");
$("#liveUpdates").append("<div><input type='button' id='btnliveUpdatesShare' value='share' onClick='addComment("+id+","+getCookie("userId")+")'></div>");
last="";
$.arte({'ajax_url':'getRealTimeUpdates.php?activity_id='+id, 'on_success':updateLiveUpdates}).start();
}
我称之为:
<input type='button' onClick='showLiveUpdates(<? echo $_GET["id"];?>)' />
function updateLiveUpdates(data)
{
if(data!=last)
{
$("#liveUpdates").append("<div id='updates"+ii+"' style='display:none' >"+data+"</div>");
$("#updates"+ii).fadeIn();
last=data;
}
ii++;
}
getRealTimeUpdates.php
<?php
require("database.php");
$activity_id=$_GET["activity_id"];
$query = "SELECT id,comment from comments where activity_id=$activity_id order by id desc limit 0,1";
echo $query;
$result = mysql_query($query);
$row = @mysql_fetch_assoc($result);
echo $row["id"]."-".$row["comment"];
?>
答案 0 :(得分:1)
这个怎么样?为id
变量创建函数范围:
function createData(id) {
return function () {
return {
'ajax_url':'getRealTimeUpdates.php?activity_id='+id,
'on_success':updateLiveUpdates
}
}
}
for (var id = 0; id < 5; i++) {
$.arte(createData(id)()).start();
}
编辑1 刚看了http://code.google.com/p/arte/source/browse/trunk/jquery-plugin-arte.js处的代码。
共享_config
属性会被覆盖,使用的网址始终为_config['ajax_url']
。
编辑2 我发布了a demo of this here来证明您的问题。所以看起来你不能多次调用这个函数,因为内部状态是共享的。
编辑3 我已经更新了一个jsfiddle,尝试按照您的意愿使这个代码正常工作。 The demo is here。新代码保持无状态,并且(似乎)成功运行5个更新循环,然后在3秒后终止它们。