2016-06-02 2 views
-1

Я немного потерял начало кода для своего сценария.Javascript - sendkeys для правильного динамически созданного div

Я разрешаю пользователю динамически создавать divs, нажимая на кнопку добавления нового div и удаляя кнопку div. Поэтому пользователь может быть сфокусирован внутри любого div на странице, и мне нужно сделать событие нажатия клавиши для правильного div.

У меня есть несколько кнопок для вставки Mathml в левой части экрана. Я хочу, чтобы у вас была возможность щелкнуть по кнопке и ввести код Mathml в div, на котором в данный момент находится пользователь.

Из того, что я читал, я считаю, что мне нужно прикрепить прослушиватель событий к каждому div поскольку он создается и удаляет его, когда пользователь удаляет div (я поддерживаю индекс div).

Как отправить событие нажатия клавиши с кнопки на div, в котором находится пользователь, не теряя при этом фокус на div и убедившись, что Mathml переходит в правильный div?

Я знаю, что в vb или C# .net это 2-секундная работа, но javascript кажется настоящим кошмаром для такого типа функциональности.

Любая помощь/указатели/советы и т. Д. Были бы очень желанными.

+1

Не у вас есть какие-либо примеры кода или даже какой-то код, который вы пытались, просто чтобы посмотреть, что у вас есть что-то, кроме просить разрешения. –

+0

Я застрял в начале здесь. Я действительно не ищу код, но больше подход, который я должен принять. Я хотел бы знать Шаг 1 - добавить событие lister Step2. Добавить кнопку Нажмите событие и т. Д. И определите его там. На данный момент я теряюсь даже на том, как начать это. Вот мой сайт, если вы хотите увидеть fucntionality www.betamaths.eu – KPM

+1

У вас есть кнопки, но вы говорите о нажатиях клавиш, вы имеете в виду 'onClick'? Вы понимаете, что по умолчанию 'divs' не могут получать фокус или обрабатывать событие onblur, которое в этом случае могло бы обрабатывать последний« сфокусированный »div? Возможно, какой-то код с тем, что вы пробовали до сих пор, прояснит. Лучше по-прежнему предоставлять snipet, кнопку '<>' в редакторе SO –

ответ

1

Хорошо, поэтому я создал эту скрипку для вас, чтобы посмотреть, как может выглядеть возможное решение.

https://jsfiddle.net/1u0uw0df/

HTML

<div id="container"> 
</div> 
<button type="button" id="AddBtn"> 
Add 
</button> 
<button type="button" id="RemoveBtn"> 
Remove 
</button> 

JQuery

var No = 0; 
var focusedElement; 
$(document).ready(function() { 
    $('#container').on('click','div',function() { 
     focusedElement = this; 
    }); 

    $('#AddBtn').on('click',function() { 
     $('#container').append('<div>Test'+No+'</div>'); 
     No++ 
    }); 

    $('#RemoveBtn').on('click', function() { 
     focusedElement.remove(); 
    }); 
}); 
+0

Отлично. Теперь у меня есть отправная точка. Спасибо. – KPM