我有以下的jQuery腳本...jQuery,在父函數上使用.find?
$(function() {
$('.eventWrapper').bind('click', function(event) {
var srvName = $(this).data('service');
var srvVal1 = $(this).data('serviceval');
if (srvName == 'livestream')
{
var query = 'http://x'+srvVal1+'x.api.channel.livestream.com/2.0/livestatus.json?callback=?';
$.getJSON(query, function(data)
{
if (data['channel']['isLive'])
{
$(this).find('.eventTime').html('<b>Currently Live</b> ('+data['channel']['currentViewerCount']+' viewers)');
}
});
}
});
});
它是在下面的代碼運行:
<div class="eventWrapper" data-service="livestream" data-serviceval="srklive">
<div class="eventIcon"><a href=""><img src="image.php?u=3942"></a></div>
<div class="eventName"><a href="">This is a test!</a></div>
<div class="eventTime">09-02-2011 08:00 PM</div>
</div>
它相當自我解釋...它綁定到類.eventWrapper。當有人點擊div中的任何位置時,它會檢查數據。如果數據匹配,它將提取JSON查詢。這到目前爲止工作得很好。
現在的問題是如何將.eventTime類中的文本替換爲它應該包含的內容。顯然,我不能使用$(this),因爲它涉及到現有的getJSON函數,而不是綁定函數。我將如何正確地做到這一點?
此外,我如何獲得事件激活頁面加載,而不是點擊?
感謝...奏效。現在如何讓這個腳本在頁面加載時運行,而不是點擊? –
我認爲你的措辭有點偏離。我會說「將'this'存儲爲'$ .getJSON'回調中使用的變量,因此您指的是正確的上下文/'this'(或者是這個效果),但是+1,點亮。 – karim79
@ karim79:對不起,我不是母語的人編輯 – genesis