Loading...
aivian avatar aivian 51 Точки

ConsumingRemoteData - 4.EditABook

Имам проблем с тази задача. Искам като се кликне върху книга, първо да се показва формата и в нея да има бутон, който като бъде кликнат, да започнат да излизат prompt - ове, да питат потребителя за заглавие, автор и isdn. Прблемът е, че като се кликне на книгата, започват директно да излизат prompt - овете, без да се показва формата. 

HTML: http://pastebin.com/FFfCqRxY CSS: http://pastebin.com/kJSYcUeQ JS: http://pastebin.com/04xYfmzH Image: http://imgur.com/4FaODcI

0
JavaScript Applications
Filkolev avatar Filkolev 4482 Точки

.click(editBook(book.objectId)) ще изпълни директно функцията, затова така се получава. Сложи само editBook в click event-a, е в самата функция editBook трябва по някакъв начин да вземеш нужното id. Може да го зададеш като атрибут на бутона и през this да го достъпиш. 

0
taylorswift avatar taylorswift 54 Точки

Смени края на 41-ви ред с .click(function(){editBook(book.objectId)})

Просто като имаш .click(functionName) всичко работи ок, но като имаш .click(functionName(args)) все едно си направил .click(functionName()) и функцията ти се изпълнява дори да не си кликнал.

0
15/04/2015 21:53:48
AleksandurSeferinkin avatar AleksandurSeferinkin 333 Точки

$('<button></button>').text('Edit book').click(editBook(book.objectId))

Ще стане на: 

$('<button></button>').text('Edit book').click(function() {

    editBook(book.objectId);

});

Просто wrap-ваш нещото в нова функция :)

1
Filkolev avatar Filkolev 4482 Точки

Това също е вариант и е малко по-прост от това, което предложих. Но на тези домашни ми се случи да искам да си ползвам някакви функции не само като викна евент, но и в други случаи, т.е. ако тази функция има вероятност да потрябва и на друго място няма как да е анонимна и ще трябва по по-сложен начин да се извади id-то, вместо да се подава като аргумент. Т.е. подходът е според зависи,  анонимната функция е напълно адекватна в случая.

2
aivian avatar aivian 51 Точки

Заработи. Мерси на всички.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.