Не может ссылаться на "это" при использовании onreset в Jeditable - PullRequest
0 голосов
/ 06 августа 2011

Почему-то я не могу ссылаться на элемент, который я редактирую, как $(this), когда я использую обработчик onreset.

Однако я могу использовать $(this) в моем обратном вызове.Я уверен, что onreset работает, потому что я сделал предупреждение.Кроме того, когда я получаю предупреждение о $(this).attr('id'), я получаю «неопределенное».

Что происходит?

КОД

    $('.edit').editable('ajax/save.php?editnotetext', {
                type : 'mce',
                submit : '<button class="save_button">Save</button>',
                cancel : '<button class="cancel_button">Cancel</button>',
                event: 'dblclick',
                placeholder : 'Doubleclick to edit...',
                indicator : 'Saving...',
                tooltip : 'Doubleclick to edit...',
                onblur: 'custom',
                callback : function(){
                          console.log('unlocked');
                          $.post('ajax/save.php?unlocknotetext', {"id" : $(this).attr('id')});
                },
                onreset : function(){
                          console.log('unlocked');
                          //myId = $(this).attr('id');
                          //alert(myId); this shows up as undefined!
                          //alert("onreset works!");
                          $.post('ajax/save.php?unlocknotetext', {"id" : $(this).attr('id')});
                }

});

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

этот комментарий , кажется, объясняет это:

Кажется, внутри onreset и onsubmit, this указывает на форму, а не на ее контейнер, поэтому вывместо этого нужно использовать $(this).parent().

Простое решение было бы сделать это:

$('.edit').each(function() {
    var $this = $(this);
    $this.editable(... /* use $this instead of $(this) here*/)
});
0 голосов
/ 14 января 2012

Это сработало для меня в разделе onReset:

    curr_form = this[0];         //form object
    par = curr_form.parentNode;  //parent,container object
    alert(par.id);
...