首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Jquery prev步骤造成了事件的冒泡 求人进来看看

2013-04-21 
Jqueryprev方法造成了事件的冒泡求人进来看看页面部分table width100% border0 cellspacing0 ce

Jquery prev方法造成了事件的冒泡 求人进来看看

页面部分
  <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <#if messagelist != null>
         <#list messagelist as message>
           <div id="${message.id}_">
            <span style="height:30px;line-height:26px;margin-left:30px;">${message.title}</span>
      <div>
             <span style="height:30px;line-height:26px;margin-left:60px;">${message.content}</span>
             <a href="javascript:void(0);" onclick="javascript:showRDiv('${message.id}','${message.hydm}','${message.hyJc}','${message.id}');">回复</a>
             <#if membId==message.hydm>
             <a href="javascript:void(0);" onclick="deleteMessage(${message.id});">删除</a>
             </#if>
             <#if message.children != null>
              <#list message.children as messagel>
                 <#if messagel!= null>
                  <div id="${messagel.id}_">
                 <span style="height:30px;line-height:26px;margin-left:100px;">${messagel.hyJc}&nbsp;:@${messagel.hzJc}&nbsp;&nbsp;${messagel.content}</span>
                 <a href="javascript:void(0);" onclick="javascript:showRDiv('${message.id}','${messagel.hydm}','${messagel.hyJc}','${messagel.id}');">回复</a>
                 <#if membId==messagel.hydm>
                 <a href="javascript:void(0);" onclick="deleteMessage(${messagel.id});">删除</a>
                 </#if>
               </div>
                 </#if>
              </#list>
             </#if>
             <div id="${message.id}" style="margin-left:100px;display:none;">
              <textarea rows="4" cols="40"></textarea><br/>
              <input type="button" onclick="publish(${message.id},'${membId}','${userId}','${message.title}','${userBrief}');" value="发表" style="margin-left:300px;"/> 


             </div>
    </div>
           </div>
      </#list>
     </#if>
       </table>
jquery 代码
function publish(parentid,membid,userid,title,hyJc){
  var content = jQuery("#"+parentid+" > textarea").val();
  if(jQuery.trim(content).length<=0){
   alert("回复内容不能为空");
   return ;
  }
  /*
  方式1
  */
  buffalo.remoteCall("springLeaveMessageAjax.saveLeaveMessage", [title,content,hz,membid,userid,parentid,parseInt(mesid)], function(reply) {
   var result=reply.getResult();
   if(result != -1){
    jQuery("#"+parentid).prev().append(function(){
               return "<div id=""+result+"_"><span style="height:30px;line-height:26px;margin-left:100px;">"+
       hyJc+"&nbsp;:@"+hzJc+"&nbsp;&nbsp;"+content+"</span>"+
       "&nbsp;<a href="javascript:void(0);" onclick="showRDiv('"+parentid+"','"+membid+"','"+hyJc+"');">回复</a>"+
       "&nbsp;<a href="javascript:void(0);" onclick="deleteMessage("+result+");">删除</a></div>";
    });
   }else{
    alert("回复失败,请重试");
   }
   jQuery("#"+parentid+" > textarea").val("");
   jQuery("#"+parentid).css("display","none");
  });

想做一个留言的功能  但是  在对前一条留言回复的时候  用了jquery的prve方法 把新的回复  拼接在了上一条留言的删除标签下  造成了 我点击新留言的任何地方 都只会 触发钱一条留言的删除功能    这有什么好办法解决   有人说要对prve方法修改  求人解说 jQuery JavaScript 标签
[解决办法]
 jQuery("#"+parentid).prev()你这个拿到的就是前一条留言的删除a标签

用append,你把后面生成的回复都插入进了a标签里面去了

用改成jQuery("#"+parentid).prev().after(function(){...})就可以了。
[解决办法]
 jQuery("#"+parentid).parent().parent().after(....);

热点排行