2011-06-03 45 views
5

有任何人所使用的toChecklist jQuery插件,我想使用它,並按照說明,但什麼都沒有發生,這裏是我的代碼:無法使用toChecklist插件


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<html> 
<head> 
<script type="text/javascript" src="jquery-1.6.1.min.js"></script> 
<script type="text/javascript" src="jquery.toChecklist.min.js"></script> 

<!-- Stylesheet --> 
<link type="text/css" rel="stylesheet" media="screen" href="jquery.toChecklist.min.css" /> 

<!-- Code to run toChecklist --> 
<script type="text/javascript"> 
    $(function() { 
     $('mySelectBox').toChecklist(); 
    }); 
</script> 

</head> 
<body> 

<select id="mySelectBox" multiple="multiple"> 
    <option>Value 1</option> 
    <option>Value 2</option> 
    <option>Value 3</option> 
</select> 

</body> 
</html> 

回答

0

好,問題是,你有 <html>標籤:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<html> 

這會防止你的頁面的驗證,並可能導致一些其他的ISSU es也是如此。如果您打算使用XHTML(我猜你是),請刪除第二個<html>標記。

+0

這雖然是一個不受歡迎的問題,但對所討論的問題沒有任何影響。 – Crollster 2011-06-07 02:54:30

-1

好吧,你面臨的問題可以很容易固定,存在這裏:

<script type="text/javascript"> 
    $(function() { 
     $('mySelectBox').toChecklist(); 
    }); 
</script> 

我認爲這是造成問題,因爲瀏覽器可能沒有充分執行加載的DOM之前代碼,因此jQuery無法對DOM中不存在的內容執行操作。

將其更改爲以下內容,一切都將正常工作:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#mySelectBox').toChecklist(); 
    }); 
</script> 

的。就緒()方法對DOM完全執行之前等待的負荷。此外,您需要在任何元素ID前添加一個散列(「#」),以向jQuery表明它們是Ids而不是某種其他類型的標識符(例如類等)。

我意識到自從你問這個問題以來已經有幾天了,但希望這能提供一些幫助。

+0

這應該做的完全一樣的事情:http://api.jquery.com/jQuery/#jQuery3 – mc10 2011-06-07 04:05:01

+0

它可能是文檔聲稱,但沒有工作時,我把OP的代碼粘貼到HTML文件。 ;-)唯一的另一個區別是向id添加了一個散列 - 我確實在HTML文件中嘗試過,但它沒有提供清單。但是,當我明確使用.ready()時,它工作。 – Crollster 2011-06-07 04:18:16

+0

添加.ready()方法使插件完美運行......非常感謝 – Mike 2011-06-08 00:51:06

7

toChecklist插件使用兩個老的和過時的方式 訪問的innerHTML,爲例子:

var labelText = $(this).attr('innerHTML'); 
checkboxValue = this.innerHTML; 

這是不是在jQuery的可用1.6+

所以,你有兩個選擇,使其爲你工作。

  1. 將您的jquery降級到版本1.5或更低版本。
  2. 改變這些線路(和其他行這樣)在toChecklist.js喜歡的東西,這些

    var labelText = $(this).html(); 
    checkboxValue = this.html(); 
    

請參閱http://forum.jquery.com/topic/jquery-change-innerhtml瞭解更多詳情。

+1

很高興您找到了解決方案。我通過電子郵件發送給插件作者。順便說一句,你可能意思是'checkboxValue = $(this).html();' – yitwail 2011-07-25 17:25:45