【发布时间】:2013-06-05 13:29:55
【问题描述】:
我正在尝试为个人项目构建标签好友系统。我在网上找到了一些很棒的教程,但现在我卡住了。
当我在标签框中输入@ 时没有任何反应。 Display 和 msgbox 应该向下滑动,以便用户可以选择他们想要标记的朋友。
我做错了什么?
<div id="tagbox">
<div class="textarea">
<textarea id="contentbox" name="contentbox"></textarea>
<div id='display'></div>
<div id="msgbox"></div>
<button type="submit" id="tag_button" value="Update" name="submit">Add</button>
</div>
这里是 AJAX/jQuery 部分:
<script type="text/javascript">
$(document).ready(function() {
var start=/@/ig;
var word=/@(\w+)/ig;
$('#tagbox .textarea textarea[name="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: "addfriends.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=$('#tagbox .textarea textarea[name="contentbox"]').html();
var content=old.replace(word,"");
$('#ws3 .textarea textarea[name="contentbox"]').html(content);
var E="<a class='red' contenteditable='false' href='#' >"+username+"</a>";
$('#tagbox').append(E);
$("#display").hide();
$("#msgbox").hide();
$('#ws3').focus();
});
});
</script>
【问题讨论】:
-
.live已弃用。您应该使用.on或.delegate。 -
为什么不用
$('#contentbox')而不是$('#tagbox .textarea textarea[name="contentbox"]')..ID在页面上应该是唯一的
标签: javascript jquery ajax dom