我正在使用此代码添加元素,并且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 :(得分:1)
添加侦听器,而不是设置元素的onclick属性。
显然它应该可以工作:http://jsfiddle.net/6gb2k/
尝试:
elementlink.addEventListener('onclick', function(e) { ... }, false);
或清洁:
var handleClick = function(e) {
...
}
elementlink.addEventListener('onclick', handleClick, false);
上面的代码应该可以根据@ crush的评论和我的小提琴来运作。