我有这个JS功能:js函数调用另一个js函数和返回值问题
function ax_get_new_msg_cnt()
{ var mTimer;
var last_msg_id;
mTimer = setTimeout('ax_get_new_msg_cnt();',30000);
$.getJSON('/apps_dev.php/profile/newMessageCheck', function(data)
{
$('#newMessageDiv').text("You have " + data.msg_cnt + " new ");
last_msg_id = data.msg_id;
});
return last_msg_id;
}
然后我有js函数,其中i调用ax_get_new_msg_cnt()
:在上述功能
function ax_get_new_msg_details()
{
var mTimer;
mTimer = setTimeout('ax_get_new_msg_details();',30000);
$.getJSON('/apps_dev.php/messagebox/newMessageDetails', function(data)
{
var str='<tr>';
str += "<td class='td_show_contact_item' align='left' id='td_date'>"+data.td_date+'</td>';
str += "<td align='left' id='td_subject'><a href='#' style='color:#ff0000 !important' class='spn_small_red_rbc'>"+data.td_subject+"</a></td>";
str += "<td class='td_show_contact_item' align='left' id='td_from'>"+data.td_from +"</td>";
//str += "<td id='block_url'>"+data.block_url+"</td>";
str +='<tr>';
var tbl = $('#td_date').parents('table');
var msg_id = ax_get_new_msg_cnt();
console.log(msg_id);
if (msg_id == data.td_id)
{
}
else
{
$(tbl).append(str);
}
});
}
我得到msg_id
未定义...
我可以按照我拥有它的方式来做它,还是有另一种方式吗?
只有msg_id != data.td_id
我想要做的追加
谢谢
Eval是邪恶的!在'setTimeout'或'setInterval'调用中使用字符串作为第一个参数会创建对'eval'的隐式(和不必要的)调用。而不是'setTimeout('ax_get_new_msg_cnt();',30000);'只传递函数名:'setTimeout(ax_get_new_msg_cnt,30000);'。更少的代码和更少的计算时间。同样的事情适用于'ax_get_new_msg_details'中的'setTimeout'调用。 –
哎呀,甚至没有看到!谢谢! –