當用戶單擊時,添加一個項目在父元素上添加一個新項目,然後單擊該項目textarea會提示編輯其文本。
HTML DOM/JS Fiddle
<div class="editor"></div>
<a href="#" class="additem">add an item</a>
<div class="options">
<br><b>Item Text</b> <br>
<textarea class="itemtext"></textarea>
</div>
JS(jQuery的)/ JS Fiddle
var $item = "<div class='item'>Text here...</div>",
$itembtn = $('a.additem'),
$editor = $('div.editor'),
$opt = $('div.options');
$itembtn.on('click', function(e){
e.preventDefault();
$editor.show();
$editor.append($item);
});
$($editor).on('click', 'div.item', function(){
var $this = $(this);
$opt.show();
$opt.find('textarea').val($this.text());
$opt.find('textarea').on('keyup', function(){
$this.text($opt.find('textarea').val());
});
});
$($editor).on('blur', 'div.item', function(){
$opt.hide();
});
但似乎$(這)不是指向一個單一的點擊的元素,取而代之的則是指向所有點擊/選擇的子元素!
而且模糊事件不起作用!
我怎麼能指出$這隻有一個選定的項目,但不是所有的點擊項目?
你模糊的事件不工作,因爲你將其連接到錯誤的元素。 – Stryner
純粹是爲了替代方案,而不是解除綁定和綁定keyup處理程序,你可以做跟蹤'active'div的變量:http://jsfiddle.net/67ndb0u8/1/不是更好或更糟,主要是一個仍然有小提琴在背景窗口中打開的情況;) –
@ Me.Name很聰明8) – rakibtg