2012-02-03 32 views
0

有沒有人有任何想法我可以做錯什麼?爲什麼這個基本的點擊功能沒有被執行到發送警報的地步。我有jQuery-1.7.1.js鏈接到我的頁面。基本.click功能我無法工作jQuery

jQuery的

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 


<script type="text/javascript" src="../fruith/jquery-1.7.1.js"></script> 

<script type="text/javascript"> 
function checkedDark() { 

$('#activate_post_checkbox').click(function(){ 
    alert('duh') 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 


} 
</script> 

</head> 

HTML

<body> 
<div id="work">blah blah blah</div> 


<input type="checkbox" id="activate_post_checkbox" value="active" /><span id="activate_post_checkbox_text">Make my posting active immediately.</span> 
</body> 
</html> 

回答

6

您需要在document.ready功能分配click事件,還是先打電話給你checkedDark()功能。

例如:

<script type="text/javascript"> 
$(function() { 

    $('#activate_post_checkbox').click(function(){ 
     alert('duh'); 
     $('#work').css('color', this.checked ? '#000' : '#666'); 
    }); 
}); 
</script> 
+0

ya def需要document.ready謝謝大家 – noWayhome 2012-02-03 22:16:48

0
function checkedDark() { 

$('#activate_post_checkbox').click(function(){ 
    alert('duh') 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 


} 
checkedDark(); 
1

對於一個你定義一個函數聽衆。也許這應該是文件準備好。

$(document).ready(function() { 

$('#activate_post_checkbox').click(function(){ 
    alert('duh') 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 


}); 

也,你可能要考慮使用。點擊的。對,而不是因爲這是更晚的jQuery版本標準的...

$('#activate_post_checkbox').on('click', function(){ 
    alert('duh') 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 
0
<script type="text/javascript"> 
$(function(){ 

    $('#activate_post_checkbox').click(function(){ 
     alert('duh') 

     $('#work').css('color', this.checked ? '#000' : '#666'); 

    }); 

}); 
</script> 
0

因爲在綁定到click事件時,DOM尚未準備好。 移動腳本文件結束或由$(document).ready(function() { ... });把它包:當執行checkedDark方法

$(document).ready(function() { 
    // your code here 
}); 
0

click事件處理程序將只被附接。我沒有看到這個方法在你的頁面中被調用。

在頁面加載時執行它將附加處理程序。嘗試這個。

$(function(){ 

    $('#activate_post_checkbox').click(function(){ 
     alert('duh');//Though its not the issue but add the semicolon 
     $('#work').css('color', this.checked ? '#000' : '#666'); 
    }); 

}); 

或者這樣做。

$(checkedDark); 

或者在關閉body標籤前調用頁面末尾的函數,以便元素可用於jQuery。

checkedDark(); 
0

你可以叫checkedDark(),把click事件裏面或使外單擊checkedDark功能

function checkedDark() { 

} 

$('#activate_post_checkbox').click(function(){ 
    alert('duh') 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 
0

你是不是調用checkedDark功能,並沒有處理程序被連接到對應的複選框事件。另外,您還需要確保頁面上的元素已準備就緒。使用.on()方法而不是click()。

(function checkedDark() { 

$('#activate_post_checkbox').on('click', function(){ 
    alert('duh'); 

    $('#work').css('color', this.checked ? '#000' : '#666'); 

}); 

}());