MouseOut函数只能工作一次

时间:2017-03-10 10:14:26

标签: javascript html

所以我有这段代码:

    <td class="texto1"">
       <ad ondblclick="muda1()" class="ad1">
          Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
       </ad>
    </td>

    <script>
function muda1(){
            var texto = $(".texto1").val();
            $(".ad1").hide();
            $( ".texto1" ).append("<textarea id='texto1' style='width:100%;height:120px;resize:none;'>"+texto+"</textarea>");
                            $("#texto1").mouseout(function(){
                              $("#texto1").hide();
                              var tex=$("#texto1").val();
                              $(".ad1").html(tex);
                              $(".ad1").show();
                            });
                        }
</script>

但它只能工作一次,如果我再次在同一文本中双击,则会出现textarea但是当我将鼠标移出时它什么也没做。

2 个答案:

答案 0 :(得分:1)

我修正了一些错误并且工作正常

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<table>
 <tr class="texto1" data-tex="sample text">
       <td ondblclick="muda1()" class="ad1" >
          Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum 
       </td>
</tr>
</table>
    <script>


function muda1(){
            var texto = $(".texto1").attr("data-tex");
            $(".ad1").hide();
            $( ".texto1" ).append("<textarea id='texto1' style='width:100%;height:120px;resize:none;'>"+texto+"</textarea>");
                            $("#texto1").mouseout(function(){
                              $("#texto1").hide();
                              var tex=$("#texto1").val();
                              $(".ad1").html(tex);
                              $(".ad1").show();
                            });
                        }
</script>

答案 1 :(得分:1)

要修复相同的ID问题,请尝试以下方法:

function muda1() {
  var texto = $(".texto1").val();
  $(".ad1").hide();

  var textarea = $("<textarea style='width:100%;height:120px;resize:none;'>"+texto+"</textarea>");
  textarea.mouseout(function(){
    var self = $(this);
    self.hide();
    var tex = self.val();
    $(".ad1").html(tex);
    $(".ad1").show();
  });

  $( ".texto1" ).append(textarea);
}