2012-06-25 140 views
3

我正在學習JQuery並嘗試通過圖像創建單車文本,但是我有一個按鈕div(containermain)的問題。一個例子是:http://jsfiddle.net/zAZst/7/最後三個圖像是按鈕,不應該對上面的圖片(前三個)有任何影響。如果將鼠標懸停在圖像上(前三個),它可以很好地工作,但如果將它懸停在按鈕上(最後三張圖像),則腳本已損壞並停止工作。你能否幫我解決腳本問題,這樣如果在按鈕(最後三張圖片)上懸停,那麼對於單車文本沒有任何影響。謝謝。Jquery腳本與按鈕衝突div

回答

4

我看你有沒有這幾行:

$('img').on('mouseover', function() { 
    clearInterval(intervalId); 
    displayTitle($(this).parents('div').attr('id').substring(5)); 
}).on('mouseout', function() { 
    currentImg = $(this).parents('div').attr('id').substring(5); 
    startLoop(); 
}) 

這使得對文件中的「任何」 IMG的鼠標懸停停止循環。你可以添加一個類循環中的圖像,就像

class="img_cycle" 

,然後改變()函數的JavaScript的第一行插入一個選擇,這樣的:

$('img.img_cycle').on('mouseover', function() { 
    clearInterval(intervalId); 
    displayTitle($(this).parents('div').attr('id').substring(5)); 
}).on('mouseout', function() { 
    currentImg = $(this).parents('div').attr('id').substring(5); 
    startLoop(); 
}) 

希望這有助於:)

編輯:我犯了一些錯字。這裏是一個JSFIddle工作版本:http://jsfiddle.net/zAZst/8/ :)

+0

非常感謝它,它完美的作品。 – user1047517

+0

不用客氣,只要我可以幫忙:D –

3

問題是mouseover和mouseout事件的選擇器適用於按鈕圖像以及頂部的圖像。當您將鼠標懸停在頂部的圖像上時,它會在直接父級中查找div,並拉取id屬性,該屬性存在並且可以調用「substring」。然而,按鈕圖像在直接父div中沒有​​id。實際錯誤是Uncaught TypeError: Cannot call method 'substring' of undefined,因爲它不能調用不存在的div id上的子串。