Jeditable и .live() Подавить первый клик

У меня есть поля jeditable, которые обновляются AJAX, поэтому я использую .live() в сочетании с Jeditable, чтобы иметь возможность постоянно связывать jeditable поля после обновления AJAX. Однако с помощью live() он подавляет первый «щелчок», а второй щелчок делает поле редактируемым.

Интересно (и, возможно, ключ к решению), если я использую 'this' в качестве ссылки, первый щелчок подавляется для каждого отдельного поля класса jedtxt (т.е. нужно дважды щелкнуть, чтобы войти в поле A jedtxt и затем еще дважды, чтобы ввести редактирование для поля B jedtxt), но если я использую имя класса '.jedtxt', первый щелчок подавляется только один раз (нужно 2 щелчка, чтобы ввести поле A, но после этого поля B можно ввести одним щелчком мыши — похоже, он «запоминает» первый щелчок по классу.

Использование $(this) Подавляет первый щелчок каждый раз при щелчке элемента класса jedtxt:

$('.jedtxt').live('click', function() {
$(this).editable('/post/somewhere',{ // note use of $(this)
'submit': 'OK',});});

Использование $('.jedtxt') подавляет первый щелчок только при первом щелчке класса jedtxt:

$('.jedtxt').live('click', function() {
$('.jedtxt').editable('/post/somewhere',{ // note use of $('.jedtxt')
'submit': 'OK',});});

И элементы jedtxt такие:

<div id="ni-50" name="ni-50" class="jedtxt">somevalue to edit</div>

Хотя второй случай немного лучше, я все еще ищу щелчок для редактирования, чтобы он работал непосредственно при первом щелчке. Примечание. Я попробовал двойной щелчок или другие триггеры событий, и проблема та же. Это ванильная тестовая страница без других событий, связанных с элементом div.

Заранее благодарим за любую помощь в этом.


person AdamYii    schedule 22.05.2012    source источник


Ответы (1)


Предлагаю прочитать эту тему:

Проблема с редактированием jQuery на месте с функцией live().. нужен ниндзя

Парень во втором решении решил это с помощью

$(this).trigger('click');
    $('.editable').live('click',function() {

    $('.editable').editInPlace({
        callback: function(unused, enteredText) { return enteredText; },
        bg_over: "#cff",
        field_type: "textarea",
        textarea_rows: "5",
        textarea_cols: "3",
        saving_image: "./images/ajax-loader.gif"
    });  
    $(this).trigger('click');
 });
person Laimis    schedule 15.07.2012