Jeditable и .live (): проблемы - PullRequest
0 голосов
/ 28 ноября 2011

Я динамически создавал контент через 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().

...