猿问

为什么没有效果。。。

function getDOM(id){
	return document.getElementById(id);
}

function addEvent(id,event,fn){
	var el = getDOM(id) || document;
	if(el.addEventListener){
		el.addEventListener(event,fn,false);
	}else if(el.attachEvent){
		el.attachEvent('on'+event,fn);
	}
}

function getElementLeft(element){
	var actualLeft = element.offsetLeft;
	var current = element.offsetParent;
	while (current !== null){
		actualLeft += current.offsetLeft;
		current = current.offsetParent;
	}
	return actualLeft;
}

function getElementTop(element){
	var actualTop = element.offsetTop;
	var current = element.offsetParent;
	while(current !== null){
		actualTop += current.offsetTop;
		current = current.offsetParent;
	}
	return actualTop;
}

function ajaxGet(){
	var xhr = null;
	if(window.XMLHttpRequest){
		xhr = new window.XMLHttpRequest();
	}else if(window.ActiveXObject){
		xhr = new ActiveXObject("Msxml2.HMLHTTP");
	}
	xhr.onreadystatechange = function(){
		if(xhr.readyState ==4 && xhr.status ==200){
			callback(JSON.parse(xhr.responseText));
		}
	}
	xhr.open('get',url,true);
	xhr.send(null);
}

function delegateEvent(target,event,fn){
	addEvent(document,event,function(e){
		if(e.target.nodeName == target.toUpperCase()){
			fn.call(e.target);
		}
	});
}
addEvent('search-input','keyup',function(){
	var searchText = getDOM('search-input').value;
	ajaxGet('http://api.bing.com/qsonhs.aspx?q='+searchText,function(d){
		var d = d.AS.Results[0].Suggests;
		var html = '';
		for (var i = 0;i<d.length;i++){
			html += '<li>'+d[i].Txt+'</li>';
		}
	getDOM('search-suggest').style.top = getElementTop(getDOM('search-form'))+38+'px';
	getDOM('search-suggest').style.left = getElementLeft(getDOM('search-form'))+'px';
	getDOM('search-suggest').style.position = 'absolute';
	getDOM('search-suggest').style.display = 'block';
	});	
});

delegateEvent('li','click',function(){
	var keyword = this.innerHTML;
	location.href = 'http://cn.bing.com/search?q='+keyword;
});


须奈子酱
浏览 1338回答 3
3回答

串猪神

想要实现什么效果呢,问题描述可以清晰一点。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答