单击内联编辑后尝试触发Ajax事件。点击失焦时无法触发模糊。
HTML:
<span class="tb">sdaf</span>
JQUERY:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$('document').ready(function(){
$( "span.tb" ).on( "click", function() {
var $this = $(this); // this is clicked span.
var html = $this.html();
$this.replaceWith('<textarea name="newDesc" style="width:100%;">'+html + '\r\n </textarea>').html().focus();
$this.blur(function() {
alert("out of focus");
// trigger Ajax event here to save new data
$this.replaceWith('<span class="tb">'+html + '\r\n </span>').html();
})
})
});
</script>
JS小提琴:
答案 0 :(得分:1)
使用contenteditable
时有任何问题吗?
您可以使用
跳过整个jQuery业务<span class="tb" contenteditable>sdaf</span>
修改强> 如果必须使用jQuery,那么您的代码可能看起来像like this
$('document').ready(function(){
function inputGen(el, content){
var textarea = document.createElement("textarea");
textarea.className = 'tmpTxt';
textarea.name = 'newDesc';
textarea.style.width = '100%';
textarea.value = content;
el.html(textarea);
$('.tmpTxt').focus();
$('.tmpTxt').on('blur', function(){
el.removeClass('active');
el.html( $(this).val() );
})
}
$( "span.tb" ).on( "click", function() {
var $this = $(this);
if( !$this.hasClass('active') ) {
inputGen( $this, $this.html() );
$this.addClass('active');
}
})
});