2012-06-29 112 views
0

我想改變鏈接的背景圖片,當它被點擊。我一直收到你無法在null上調用'click'的錯誤。使用jQuery改變背景圖片

JQuery的(在頭)

<script type="text/javascript"> 
    $('a.upvote-arrow').click(function(){ 
     $('#tempid1').css('background-image','url(../images/icons/up-arrow2.png)'); 
    }); 
</script> 

HTML

<div class="top-comment-vote"> 
    <a href="#" class="upvote-arrow" title="Up vote" id="tempid1"></a> 
</div> 

感謝

回答

1

嘗試增加$(document).ready

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('a.upvote-arrow').click(function(){ 
     $(this).css('background-image','url(../images/icons/up-arrow2.png)'); 
    }); 
}) 
</script> 
+0

感謝您的快速回答。我這樣做,我現在我得到了'未捕獲的SyntaxError:意外的輸入結束' – Danconia

+0

謝謝,得到它的工作,問題是'$'是衝突的,所以我不得不做'var $ j = jQuery.noConflict( );'。謝謝,它現在可行! – Danconia

+0

@LuisP好的,很高興我能幫助你 – mgraph

0

嘗試用包裝的document.ready你的腳本;我懷疑你的腳本可能在整個頁面加載之前運行。

1

你確定這個腳本是在DOM之後加載的嗎?

試着包裝你在onload closure中寫的東西。

$(function() { 
$('a.upvote-arrow').click(function(){ 
    $('#tempid1').css('background-image','url(../images/icons/up-arrow2.png)'); 
}); 
}); 

您可以做的另一件事是利用委派進行事件註冊。

$('body').on("click", ".a.upvote-arrow", function(){ 
$('#tempid1').css('background-image','url(../images/icons/up-arrow2.png)'); 
}); 

改爲將其綁定到身體。