2011-06-03 22 views
1

我把這個腳本關掉了9lessons.info,當你輸入@ simbol的時候它會自動建議朋友。它很棒!但它使用啓用了contentbox的div作爲文本框,但由於這是一個HTML5功能,但我需要一個更加兼容的解決方案,如文本區域。但是textarea並沒有使用當前的jQuery,即使使用與div相同的ID。我不擅長jQuery,所以任何人都可以看到爲什麼?我如何用文本框替換這個contentbox div?

源代碼:

<!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"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Facebook like Tag Friends</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 



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

var start=/@/ig; 
var word=/@(\w+)/ig; 

$("#contentbox").live("keyup",function() 
{ 
var content=$(this).text(); 
var go= content.match(start); 
var name= content.match(word); 
var dataString = 'searchword='+ name; 

if(go.length>0) 
{ 
$("#msgbox").slideDown('show'); 
$("#display").slideUp('show'); 
$("#msgbox").html("Type the name of someone or something..."); 
if(name.length>0) 
{ 
$.ajax({ 
type: "POST", 
url: "boxsearch.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$("#msgbox").hide(); 
$("#display").html(html).show(); 
} 
}); 

} 
} 
return false(); 
}); 

$(".addname").live("click",function() 
{ 
var username=$(this).attr('title'); 
var old=$("#contentbox").html(); 
var content=old.replace(word,""); 
$("#contentbox").html(content); 
var E="<a class='red' contenteditable='false' href='#' >"+username+"</a>"; 
$("#contentbox").append(E); 
$("#display").hide(); 
$("#msgbox").hide(); 
$("#contentbox").focus(); 
}); 

}); 
</script> 

</head> 

<body> 
<h3>Tutorial link <a href="http://9lessons.info">Click Here</a></h3> 
<h2>Eg: 9lessons blog @sri</h2> 
<div id="xxx"></div> 
<div id="container"> 
<div id="contentbox" contenteditable="true"> 
</div> 
<div id='display'> 
</div> 
<div id="msgbox"> 
</div> 
</div> 


</body> 
</html> 
+0

爲了什麼瀏覽器,你需要一個更兼容的解決方案?儘管contenteditable作爲HTML5規範正在制定中,但其可用於IE6 +,FF3 +,Chrome,Safari和Opera。 – Annie 2011-06-03 01:35:48

+0

你可以花幾分鐘時間再設置一下你的代碼嗎?可能刪除所有CSS和其他不必要的東西,然後添加一些縮進。我認爲如果你能修剪掉一些噪音,人們會更有可能回答。 – ataddeini 2011-06-03 01:36:32

+0

CSS刪除了嗎?我不知道IE6 +支持它。 – user663049 2011-06-03 02:10:55

回答

0

嘗試:

var html = $('#contentbox').html(); 
var textarea = $('<textarea />').attr('id', 'contentbox').html(html); 
$('#contentbox').replaceWith(textarea); 

參見:http://jsfiddle.net/yFKRX/1/