javascript - <div contentEditable="true" onclick=""></div>实现placeholder效果?
阿神
阿神 2017-04-11 13:22:42
0
3
763
<p contenteditable="true" id="comment" onclick="handleComment()">Leave a comment</p>
function handleComment() {
    var e = document.getElementById("comment");
    e.innerHTML = "";
    e.removeEventListener('click', handleComment, false);
}

问题描述
我这样实现的话,当鼠标聚焦到p标签的时候,确实能将innerHTML清空,但是removeEventListener却无法产生效果。也就是说每次重新聚焦到p标签时候,上次的输入都会清除。

我的目的只是想让第一次聚焦到p标签的时候清空标签内的内容。

请问这是什么原因呢?

阿神
阿神

闭关修行中......

reply all(3)
大家讲道理
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.con{
    width:300px;
    height:100px;
    border:1px solid gray;
}
.con:empty:before{
    content:attr(placeholder);
    font-size: 16px;
    color: #999;
}
.con:focus:before{
    content:none;
}
</style>
</head>
<body>
<p class="con" contenteditable="true" placeholder="Leave a comment"></p>
<script>
</script>
</body>
</html>
阿神

你一个是元素上的onclick事件,一个是js动态绑定事件,不能混用啊!

迷茫
function handleComment() {
    var e = document.getElementById("comment");
    e.innerHTML = "";
    e.onclick = undefined;
  //e.removeEventListener('click', handleComment, false);
}

因为removeEventListener只能remove,用addEventListener加上去的事件,直接定义在属性onclick上的handler是无效的。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!