Попробуйте это
const addButton = document.querySelector("#addToDo");
const list = document.querySelector(".list");
addButton.addEventListener("click", addTask, false);
list.addEventListener("click", delTask, true);
function addTask() {
const textToDo = document.querySelector("#toDo").value;
var list = document.querySelector(".list");
var divToDo = document.createElement("div");
var p = document.createElement("p");
var delButton = document.createElement("button");
divToDo.setAttribute("class", "toDo");
delButton.setAttribute("id", "delToDo");
delButton.textContent = "Delete";
p.textContent = textToDo;
divToDo.appendChild(p)
divToDo.appendChild(delButton);
list.appendChild(divToDo);
}
function delTask(event) {
const target = event.target;
if (target.nodeName === 'BUTTON') {
target.parentNode.remove();
}
}
Do homework
Do smth
Некоторые наблюдения, потому что вы добавляете новые узлы в DOM, вам нужно использовать стратегию делегирования событий, чтобы сделать новые элементы доступными через события. Вы можете прочитать в этой статье о теме http://javascript.info/event-delegation , если вы предпочитаете видео, курс https://javascript30.com/ 15-го числа. с названием LocalStorage и Event Delegation объясняет предмет очень ясно
Я не рекомендую делать это как каждый раз, когда это создается должен быть вычислен, новый план выполнения, но ДА, это определенно может быть сделано (Все возможно, но не всегда рекомендуемое).
Вот пример:
CREATE PROC [dbo].[sp_helloworld]
AS
BEGIN
SELECT 'Hello World'
DECLARE @sSQL VARCHAR(1000)
SET @sSQL = 'CREATE PROC [dbo].[sp_helloworld2]
AS
BEGIN
SELECT ''Hello World 2''
END'
EXEC (@sSQL)
EXEC [sp_helloworld2];
DROP PROC [sp_helloworld2];
END
Вы получите предупреждение
The module 'sp_helloworld' depends on the missing object 'sp_helloworld2'.
The module will still be created; however, it cannot run successfully until
the object exists.
, можно обойти это предупреждение при помощи ДОЛЖНОСТНОГО ЛИЦА ('sp_helloworld2') выше.
, Но если Вы называете ДОЛЖНОСТНОЕ ЛИЦО [sp_helloworld] Вами, получит результаты
Hello World
Hello World 2
Это не имеет той функции. Трудно видеть, какую реальную выгоду такая функция обеспечила бы кроме остановки кода во вложенном SPROC от того, чтобы быть названным откуда-либо.
МН Oracle / SQL является чем-то вроде особого случая, будучи языком в большой степени на основе Ada, а не простого DML с некоторыми процедурными конструкциями, соединенными болтом на. Думаете ли Вы, что это - хорошая идея, вероятно, зависит от Вашего аппетита к процессуальному кодексу в Вашем DBMS и Вашей симпатии за изучение сложных новых языков.
идея подпрограммы, для сокращения дублирования или иначе, является в основном внешней на другие платформы базы данных, по моему опыту (Oracle, MS SQL, Sybase, MySQL, SQLite в основном).
, В то время как создание SQL proc работало бы, я думаю John's прямо в предложении, чтобы Вы не использовали его иначе корректный ответ!
Вы не говорите, что формируется, Ваши повторные строки берут, таким образом, я предложу три потенциальных альтернативы, начиная с самого простого:
ничего Не Делают. Признайте, что процедурный SQL является языком примитива, испытывающим недостаток в таком количестве "существенных" конструкций, что Вы не использовали бы его вообще, если бы это не была единственная опция.
Перемещение Ваши процедурные операции за пределами DBMS и выполняют их в коде, написанном на более сложном языке. Рассмотрите пути, которыми Ваша архитектура могла быть скорректирована для извлечения бизнес-логики из платформы хранения данных (эй, почему бы не перепроектировать все это!)
, Если повторение происходит в DML, ВЫБИРАЕТ, в частности, полагайте, что представления представления сокращают запросы.
Пишут код для генерации, как часть процесса сборки, хранимых процедур. Тот путь, если повторные строки когда-нибудь должны изменяться, можно изменить их в одном месте и автоматически генерировать повторение.
Это четыре . Я думал о другом, поскольку я вводил; считайте это премией.
sp_helloworld John's действительно работает, но здесь является причиной, почему Вы не видите сделанный чаще.
существует очень большое влияние производительности, когда хранимая процедура компилируется. Существует статья Microsoft о поиске и устранении неисправностей проблем производительности, вызванных большим количеством, перекомпилировал, потому что это действительно замедляет Вашу систему вполне немного:
http://support.microsoft.com/kb/243586
Вместо того, чтобы создать хранимую процедуру, Вы более обеспечены просто создание строковой переменной с T-SQL, который Вы хотите назвать, и затем неоднократно выполнение та строковая переменная.
не понимают меня превратно - это - довольно плохая идея производительности также, но это лучше, чем создание хранимых процедур на лету. Если можно сохранить этот код в постоянной хранимой процедуре или функционировать и устранить перекомпилировать задержки, SQL Server может создать единый план выполнения относительно кода однажды и затем повторное использование тот план очень быстро.
Я соглашаюсь с andynormancx, что, кажется, нет большого количества точки в выполнении этого.
, Если Вы действительно хотите, чтобы общий код содержался в SP затем, Вы могли бы, вероятно, мостить что-то вместе с GOTO или динамический SQL, но выполнение его правильно с отдельным SP или UDF будет лучше почти каждым способом.
Спасибо всем за Ваши ответы! Я более обеспечен затем создание еще одного SP с повторяющимся кодом и называю это, которое является лучшим способом интерны производительности, и выглядите мудрыми.