2014-05-14 50 views
0

我在我的網站的<head>節以下腳本:JQuery的Click事件無法正常工作

<script src="scripts/jquery-1.11.0.min.js" type="text/javascript"></script> 
<script> 
$('#submit').click(function() { 
$('#submit').css('background-image', 'url("/static/ui/msback.png")'); 
}); 
</script> 

而且隨着submitid一個提交按鈕。但是,點擊提交按鈕不會改變背景圖片。 這裏有什麼錯誤?

回答

1

你需要用你的函數來包裝,以便jQuery在元素被加載後將函數分配給按鈕。否則,jQuery不能將該函數分配給任何按鈕,因爲該按鈕還不存在。

試試這樣說:

$(document).ready(function() { 
    $('#submit').click(function() { 
     $(this).css('background-image', 'url("/static/ui/msback.png")'); 
    }); 
}); 

JS FIDDLEhttp://jsfiddle.net/pQgAj/1/

http://api.jquery.com/ready/有關更多詳細信息。

:您可以將.click()函數中使用$(this),保存爲jQuery的不必再evalute的$('#submit')時間。

// 替代方案:將您的功能封裝到.ready()中的替代方法是將您的JavaScript代碼放在網站的末尾。但我不推薦這個。

+0

謝謝。這兩個提示都很有用。 :) –

1

嘗試的document.ready內包裝它:

<script src="scripts/jquery-1.11.0.min.js" type="text/javascript"></script> 
<script> 
    $(document).ready(function(){ 
     $('#submit').click(function() { 
      $('#submit').css('background-image', 'url("/static/ui/msback.png")'); 
     }); 
    }); 
</script> 
+0

在'.click()'函數中使用$('#submit')'在這裏不需要。當點擊函數傳遞觸發元素時,最好使用'$(this)'。 – Robin

+0

我剛剛複製他的代碼.. :) – qtgye