2011-09-03 60 views
0

我寫了一個自定義的內聯編輯器,我有一個問題。如果我點擊保存按鈕後,我不能再次編輯它,我如何解決它的工作?你能幫助我,讓它多嗎?我的意思是,這項工作在頁面上只有1個格,不超過1 下面是代碼:不工作與jQuery的自定義內聯編輯器

$(function() 
{ 
    var fut = false; 
    $('.jq_edit').live('click', function() { 
     if (fut==true){ } else {         
     var tartalom = $(this).html(); 
     $(this).html("<input type='text' value='"+tartalom+"'><input type='button' value='Save' class='save'>"); 
     fut=true; 
     } 
    }); 
     $('.save').live('click', function() { 
      var mtartalom=$(this).prev().attr('value'); 
      $('.jq_edit').html(mtartalom); 
      $('.jq_edit').append(" <span id='ok'><img src='accept.png'> Success</span>"); 
      $('#ok').delay(1500).fadeOut(500); 
     }); 
}); 

和HTML:

<body> 
<div class="jq_edit">adsadasd</div> 
</body> 

感謝您的幫助!

回答

1

要使它多,你必須改變很多,在這裏我的解決方案:

$(function() { 
    $('.jq_edit').live('click', function() { 
     // if success message is visible, remove it 
     $(this).find('.ok').remove(); 

     // if already in input mode, return 
     if ($(this).hasClass('inputMode')) { 
      return true; 
     } 

     // change to input mode 
     var tartalom = $(this).html(); 
     $(this) 
      .empty() 
      .append("<input type='text' value='" + tartalom + "'>") 
      .append("<input type='button' value='Save' class='save'>") 
      .addClass('inputMode'); 
    }); 

    $('.save').live('click', function() { 
     // create success message 
     var jSuccess = $("<span class='ok'> <img src='accept.png' /> Success</span>"); 

     // deactivate input mode 
     $(this).parent() 
      .html($(this).prev().val()) 
      .append(jSuccess) 
      .removeClass('inputMode'); 

     // animate success message 
     $(jSuccess).delay(1500).fadeOut(500, function() { 
      $(this).remove(); 
     }); 

     // prevent jq_edit click handler 
     return false; 
    }); 
}); 

也看到我的jsfiddle

+0

謝謝!這個很酷! ;) – gaben

0

請刪除if(fut==true)檢查,它應該工作正常......發生的事情是,一旦fut變量設置爲true,就地編輯將永遠不會執行。我仍然困惑,爲什麼你有擺在首位,辦理入住手續......

+0

只是爲了控制 – gaben