2014-01-09 5 views
0

я добавлял элементы с этим кодом и событием OnClick работает отлично:OnClick события не работает при создании элементов

$("#main").before('<ul class=\"breadcrumb\"><li><a href=\"javascript:;\" onclick=\"Search(\'' + "/" + '\')\"><span>Home</span></a></li></ul>'); 

Но я больше не использую JQuery, и с кодом ниже, в OnClick события не стреляют. Любая идея, почему это происходит?

var breadcrumb = document.createElement('ul'); 
breadcrumb.className = 'breadcrumb'; 

var element = document.createElement('li'); 

var elementlink = document.createElement('a'); 
elementlink.onclick = function() { 
    Search("/"); 
    return false; 
}; 

var elementspan = document.createElement('span'); 
elementspan.innerHTML = 'Home'; 

elementlink.appendChild(elementspan); 
element.appendChild(elementlink); 
breadcrumb.appendChild(element); 

document.getElementById('main').insertBefore(breadcrumb, null); 
+0

Определить, не работает. – crush

+0

нет стрельба .. элемент отображается хорошо. Я попытался использовать alert() вместо моей функции на всякий случай, но он тоже стреляет – nhenrique

+0

вы можете указать, должно ли решение быть в чистом js или jquery. – Huangism

ответ

1

Добавить слушателя вместо установки свойства onclick элемента.

Видимо, он должен работать, хотя: http://jsfiddle.net/6gb2k/

Try:

elementlink.addEventListener('onclick', function(e) { ... }, false); 

или уборщик:

var handleClick = function(e) { 
    ... 
} 
elementlink.addEventListener('onclick', handleClick, false); 

Ваш выше код должен работать, однако в соответствии с комментарием @ раздавить и моей скрипкой.

+0

Вы можете, [** в факт **] (http://jsfiddle.net/Xb7Cf/), непосредственно задайте свойство 'onclick'. Конечно, лучше использовать 'addEventListener', хотя вы не знаете, какие другие события кликов могут быть привязаны к объекту. – crush

+0

Спасибо @crush Я изменил ответ, пожалуйста, удалите ваш downvote. – mattdlockyer

+0

@crush ваша скрипка, похоже, не работает для меня Chrome 31 – mattdlockyer

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