2014-02-22 19 views
0

我試圖將一個特定功能綁定到Gmail收件箱中的較新/較舊按鈕。將功能綁定到Gmail中的較舊/較新按鈕

這兩個按鈕的HTML如下:

<div id=":i0" class="T-I J-J5-Ji amD T-I-awG T-I-ax7 T-I-Js-IF L3" role="button" tabindex="0" data-tooltip="Newer" aria-label="Newer" style="-webkit-user-select: none;"><span class="amF">&nbsp;</span><img class="amI T-I-J3" src="images/cleardot.gif" alt=""></div> 


<div id=":hs" class="T-I J-J5-Ji amD T-I-awG T-I-ax7 T-I-Js-Gs L3" role="button" tabindex="0" data-tooltip="Older" aria-label="Older" style="-webkit-user-select: none;"><span class="amF">&nbsp;</span><img class="amJ T-I-J3" src="images/cleardot.gif" alt=""></div> 

我嘗試了各種方法,如:

$('span.Di div.T-I').one('click', function(){ 
     console.log('Hey'); 
}); 

$('span.Di').find('div.T-I').addClass('.class-name'); 
$('.class-name').click(function(){ 
    console.log('hey'); 
}); 

現在,這個工作當我點擊第一次按鈕,但是在隨後的點擊中,它不起作用。

有什麼建議嗎?

回答

0

.one(函數只執行一次,嘗試用.on(

$('span.Di div.T-I').on('click', function(){ 

而在你的代碼的第二位替換它,將其更改爲:

$('span.DI').find('div.T-I').addClass('.class-name'); 
$('.class-name').click(function(){ 
    console.log('hey'); 
}); 

你之前有一個錯字(缺少'關閉支架)在:$('span.DI)

+0

嘿丹尼爾,我意識到錯字。不過,這兩種方法都不起作用。在第二種方法中,類僅在第一次添加,而不是在第二次單擊後添加。我認爲這可能與Gmail的加載部分有關。所以我必須在視圖加載完成後調用函數。 – Newtt

+1

我猜測Gmail正在重新渲染這些按鈕,並且由於點擊偵聽器只會被添加一次,所以它不會再次觸發。嘗試類似'$('body')。on('click','span.Di div.T-I',Fn);' – abraham

相關問題