javascript
2013-11-18 6 views 0 likes 
0

У меня динамический кнопка, которая получает добавлен атрибут HTML:OnClick событие для динамического элемента

Отредактировано:

$("#gallery").html("<button id='" +img_name.substring(img_name.indexOf("uploaded_images")) 
    + "' onclick='testrf('test')' 
    class='btn btn-danger btn-xs delete_btn' >Delete</button>"); 

У меня есть моя функция, как:

function testrf(param) 
{ 
    alert(param); 
}; 

но это дает мне testrf не определен, это потому, что мой элемент добавлен dymanicaly?

Я что-то упустил?

+0

Вместо встроенного JS, почему бы не использовать делегирование событий с '.on()'? – Barmar

ответ

1

Там целая практика, которая говорит, что это плохая идея, чтобы иметь встроенные функции/стили.

Просто используйте jQuery.

JS

$('button').click(function(){ 
    alert(this.id);}) 

HTML

<button id='1234' class='btn btn-danger btn-xs delete_btn' >Delete</button> 

jsFiddle: http://jsfiddle.net/5kfYQ/1/

+0

Хороший человек! Вы решили мою проблему; Я не мог проголосовать за ваш ответ :(Но я хотел бы знать, почему мой код не работает :( –

+0

Вероятно, это проблема с областью. Выбранная тестовая функция скорее всего локальна для области анонимной функции и не глобальный. – Hunter

+0

Вот jsFiddle с функцией, определяемой глобально: http://jsfiddle.net/9JXss/ – Hunter

0

Это не выход из функции. Он выглядит прямо здесь, но может быть недостающая точка с запятой прямо перед определением функции. Он ищет testrf, а не определяет его как функцию. Синтаксис проверяет всю вашу страницу, а не только функцию.

0
onclick="testrf('test')" 

Вы должны использовать различные цитаты

+0

эй человек; Я использую html-атрибут и динамически добавляет его; поэтому я передал все теги кнопок, которые я упоминал внутри: $ ('# content'). html («ВСЕ МОЙ КНОПКОЙ С СИНТАКЦИЕЙ, УКАЗАННЫМ ИМЕЕТСЯ ЗДЕСЬ»); –

+0

См. Отредактированную версию! Спасибо :) –

Смежные вопросы