日期:2014-05-16  浏览次数:20475 次

一个jquery事件冒泡问题,兄弟速进,点亮我心中的谜团吧~~!!!
JScript code

$(function () {
    /**清空文本*/
    $('#quick_live').live('focus', function (event) {
        $(this).addClass("focus").parent().next().css('display', 'block');
        if ($(this).val() == this.defaultValue) {
            $(this).val("");
        }
        event.stopPropagation();
    })
});


我用live绑定了一个文本域的聚焦清空默认文本事件,现在我有个问题是:文本域的下一个DOM节点有个<label><input type="button" value="回复" /></label>,现在我想做的是点击页面空白处:移出当前event.target的文本域的class;并且按钮隐藏。可惜我写了一个body的click事件,当我点击按钮回复时:直接触发了body的click事件,按钮本身事件都没触发就隐藏掉了。具体的效果就是人人网上针对新鲜事的回复一样,回复框获得焦点,显示按钮,表情等等。当用户不想回复时,随意点击空白处就可以把之前的回复框缩小,按钮隐藏,求高手,求解。。。困扰我好久了

------解决方案--------------------
你为什么要给body绑定事件,直接给那个框一个bulr事件不可以吗?
------解决方案--------------------
楼主,您既然是要实现人人网的效果,那您先查看下人人网的源代码吧
------解决方案--------------------
$(function () {
$('body').click(function (event) {
var clickEvent = $(e.target);
if(clickEvent.id == "回复按钮的id" ){
//回复框缩小,按钮隐藏
}else{
//回复框展开,(我也不知道你说的这个是啥按钮,感觉你的描述不太清晰,公司禁网,所以我也看不了人人网那个效果是啥样的..)按钮显示
}
})
});