@tvoyadres

Как отследить на на какой блок нажал пользователь после focusout jquery?

Не могу наложить событие focusout или blur, чтоб можно было отследить куда нажали после ухода с поля textarea нажимая на любой элемент на странице

// Note
    $('[data-note]').live('click', function(){
        _note($(this).attr('data-note'));
        return false;
    });

    // Click out
    $(document).click(function (event) {
        if (event.target.className != 'tree_menu' && event.target.className != 'tree_toggle') {
            $('.tree').removeClass('active');
            $('.tree_menu').hide();
        }
        if (event.target.className == 'dropdown_menu_close' || (event.target.className != 'dropdown_menu' && event.target.className != 'dropdown_toggle')) {
            $('.dropdown').removeClass('active');
            $('.dropdown_menu').hide();
        }
        if (event.target.id != 'reason') {
            $('#reason').parent('.group').prev().show();
            $('#reason').parent('.group').remove();
        }
        if (!event.target.dataset.description && $('[data-description]').length) {
            console.log(event.target.dataset);
        }
    });

function _note(id) {
    var
        target_data2 = '';
    click_note++;
        
    if (click_note > 1) {
        setTimeout(function () {
            click_note = 0;
            _note();
        }, 1000);
    }
    if (click_note == 1) {
        if ($('[data-note = "' + id + '"]').is('[data-add]')) {
            console.log('add');
            $('[data-note = "' + id + '"]').removeAttr('data-add').removeAttr('data-edit').attr('data-safe', '').html('<i class="fa fa_clipboard"></i> Сохранить заметку').parent().parent().parent('.offer').after('<div style="margin: 0 30px 30px 30px"><textarea class="control" data-description="'+id+'" name="description" rows="2" placeholder="а-я" maxlength="255" style="overflow: hidden; overflow-wrap: break-word; height: 4em; resize: none; margin: 0"></textarea></div>');
            $('[data-description = "' + id + '"]').focus();
            click_note = 0;
        }        
        else if ($('[data-note = "' + id + '"]').is('[data-edit]')) {
            console.log('edit');
            $.ajax({
                cache: false,
                url: encodeURI(URL + '/js/note.php?id=' + id + '&edit=true'),
                dataType: 'json',
                success: function (result) {
                    if ('success' in result) {
                        $('[data-note = "' + id + '"]').removeAttr('data-edit').attr('data-safe', '').html('<i class="fa fa_clipboard"></i> Сохранить заметку').parent().parent().parent('.offer').after('<div style="margin: 0 30px 30px 30px"><textarea class="control" data-description="'+id+'" name="description" rows="2" placeholder="а-я" maxlength="255" style="overflow: hidden; overflow-wrap: break-word; height: 4em; resize: none; margin: 0">'+result.content+'</textarea></div>');
                        $('[data-description = "' + id + '"]').focus();
                    }
                },
                complete: function () {
                    click_note = 0;
                }
            });
        }
        else if ($('[data-note = "' + id + '"]').is('[data-safe]')) {
            console.log('safe');
            console.log('1');
            $.ajax({
                cache: false,
                url: encodeURI(URL + '/js/note.php?id=' + id + '&description' + $('[data-note = "' + id + '"]').parent().parent().parent('.offer').next().children().val()),
                dataType: 'json',
                beforeSend: function () {
                    if (!$('[data-note = "' + id + '"]').parent().parent().parent('.offer').next().children().val()) {
                        console.log('Добавить заметку');
                        $('[data-note = "' + id + '"]').removeAttr('data-edit').removeAttr('data-safe').attr('data-add', '').html('<i class="fa fa_sticky_note"></i> Добавить заметку');
                    }
                    else {
                        console.log('Редактировать заметку');
                        $('[data-note = "' + id + '"]').removeAttr('data-add').removeAttr('data-safe').attr('data-edit', '').html('<i class="fa fa_sticky_note_o"></i> Редактировать заметку');
                    }
                },
                success: function (result) {
                    if ('success' in result) {
                        //$('[data-note = "' + id + '"]').parent().parent().parent('.offer').next().remove();
                        $('[data-description = "' + id + '"]').parent().remove();
                    }
                    else if ('error' in result && result.error == true) {
                        _alert(result.content);
                    }
                },
                complete: function () {
                    //console.log($('[data-note = "' + id + '"]').parent().parent().parent().parent('.offer').next().children().html());
                    click_note = 0;
                }
            });
        }
        $('[data-note = "' + id + '"]').parent().parent().parent('.offer').next().children().focusout(function(event){
            console.log(id);
            console.log(event.target.dataset.note);
            /*
            if (target_data !== id) {
                console.log('true');
                setTimeout(function(){
                    $('[data-description = "' + id + '"]').parent().remove();
                }, 1000);
            }
            */
        });
    }
}
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы