我有这个来源,写的是前一段时间。 (我使用jQuery的timeago插件)
<script>
$(document).ready(function() {
$("abbr.timeago").timeago();
});
function timeago(time) {
isoTime = new Date();
isoTime.setTime(time);
return "<abbr class='timeago' title='"+isoTime.toISOString()+"'></abbr>";
}
function add() {
$('#ex').append( timeago(time) );
}
</script>
当我尝试调用add()
函数时,它并不总是有效。
效果很好:
<script>
add();
</script>
但是当我尝试从按钮调用它时,无法正常工作:
<button onclick='add()'>button</button>
我认为它不起作用因为这一行$("abbr.timeago").timeago();
无法读取我添加的新<abbr>
。 (也许它只能读取在此行<abbr>
行为之前添加的$("abbr.timeago").timeago();
有人知道如何解决它?
答案 0 :(得分:0)
尝试删除$(document).ready(..)块,改为定义add()
,如下所示:
function add() {
$('#ex').append( $(timeago(time)).timeago() );
}
作为旁注,最好避免给全局函数赋予与此处使用的jQuery方法相同的名称。 function timeago(..
可以是function newElFromTime(time)
您甚至可以修改它以返回一个jQuery对象,该对象调用.timeago()方法而不是纯HTML字符串:
function newTimeagoFromTime(time) {
isoTime = new Date();
isoTime.setTime(time);
return $("<abbr class='timeago' title='"+isoTime.toISOString()+"'></abbr>").timeago();
}
function add() {
$("#ex").append(newTimeagoFromTime(time));
}