Я динамически создавал контент через JavaScript после загрузки страницы следующим образом:
<div id="filetree" class="">
<ul class="jqueryFileTree" style="">
<li class="directory collapsed"><a class="editable" id="920081112" href="#" rel="../../../aamirafridi-jQuery-UI-Scrollable-Tabs-2.0-c2b4056/">aamirafridi-jQuery-UI-Scrollable-Tabs-2.0-c2b4056</a></li>
<li class="directory collapsed"><a class="editable" id="920081113" href="#" rel="../../../CloudCoding/">CloudCoding</a></li><li class="directory collapsed"><a class="editable" id="920081114" href="#" rel="../../../CloudCoding2/">CloudCoding2</a></li>
<li class="directory collapsed"><a class="editable" id="920081115" href="#" rel="../../../CloudCodingInterface/">CloudCodingInterface</a></li>
<li class="directory collapsed"><a class="editable" id="920081116" href="#" rel="../../../jquery-ui/">jquery-ui</a></li>
</ul>
</div>
Поскольку контент создается с помощью JavaScript, мне нужно использовать .live()
, чтобы заставить jeditable
работать.
У меня также есть контекстное меню, которое после нажатия на один из его пунктов должно активировать jeditable
для этого элемента:
$.contextMenu({
selector: 'ul.jqueryFileTree > li > a',
callback: function(key, options) {
var m = "clicked: " + key;
window.console && console.log(m);
if(key == 'rename'){
c = $(this);
id = "#" + $(c).attr('id');
alert('veniamo chi arria prima')
window.console && console.log(c);
window.console && console.log(id);
$('.editable').trigger("edit1");
}
},
items: {
"rename": {name: "Rename", icon: "edit", accesskey: "r"},
"cut": {name: "Cut", icon: "cut", accesskey: "c"},
// first unused character is taken (here: o)
"copy": {name: "Copy", icon: "copy", accesskey: "c o p y"},
// words are truncated to their first letter (here: p)
"paste": {name: "Paste", icon: "paste", accesskey: "cool paste"},
"delete": {name: "Delete", icon: "delete"},
}
});
$('.icon-edit').live('click',function(event) {
$(id).editable("http://www.example.com/save.php", {
event: 'edit1',
});
});
Ну, у меня есть одна проблема:
1-) в первый раз, когда я щелкаю элемент, jedtable
не работает, во второй раз да, я думаю, это связано с .live()
.