Javascript: 模糊问题
Javascript: trouble with blur
我试图让导航项在点击时变身为搜索栏,并在用户点击其他地方时 returns 变回其原始状态。变形进行得很好,但我认为 'blur' 是我触发变形返回的最佳选择,但它不起作用。
标记是这样的:
<li class="navItem" id="search">Search</li>
和脚本:
function startSearch()
{
if(!ifSearch)
{
var search = document.getElementById("search");
var form = document.createElement("form");
var textfield = document.createElement("input");
var submit = document.createElement("input");
search.innerHTML = "";
form.setAttribute("action", "search.php");
form.setAttribute("method", "get");
textfield.setAttribute("type", "text");
textfield.setAttribute("id", "searchfield");
textfield.setAttribute("name", "searchItem");
submit.setAttribute("type", "submit");
submit.setAttribute("id", "subSearch");
form.appendChild(textfield);
form.appendChild(submit);
search.appendChild(form);
ifSearch = true;
search.addEventListener("blur",function() {
search.innerHTML = '<a>Search</a>';
ifSearch = false;
});
}
}
var ifSearch = false;
document.getElementById("search").addEventListener("click", startSearch);
"blur" 事件永远不会触发。尝试 "focusout" 与 IE 和它工作一次二十次。不确定发生了什么,所以如果有人能启发我,我将不胜感激
焦点和模糊事件不会冒泡。在这种情况下,您需要直接在 <input>
字段上监听模糊事件。
我试图让导航项在点击时变身为搜索栏,并在用户点击其他地方时 returns 变回其原始状态。变形进行得很好,但我认为 'blur' 是我触发变形返回的最佳选择,但它不起作用。
标记是这样的:
<li class="navItem" id="search">Search</li>
和脚本:
function startSearch()
{
if(!ifSearch)
{
var search = document.getElementById("search");
var form = document.createElement("form");
var textfield = document.createElement("input");
var submit = document.createElement("input");
search.innerHTML = "";
form.setAttribute("action", "search.php");
form.setAttribute("method", "get");
textfield.setAttribute("type", "text");
textfield.setAttribute("id", "searchfield");
textfield.setAttribute("name", "searchItem");
submit.setAttribute("type", "submit");
submit.setAttribute("id", "subSearch");
form.appendChild(textfield);
form.appendChild(submit);
search.appendChild(form);
ifSearch = true;
search.addEventListener("blur",function() {
search.innerHTML = '<a>Search</a>';
ifSearch = false;
});
}
}
var ifSearch = false;
document.getElementById("search").addEventListener("click", startSearch);
"blur" 事件永远不会触发。尝试 "focusout" 与 IE 和它工作一次二十次。不确定发生了什么,所以如果有人能启发我,我将不胜感激
焦点和模糊事件不会冒泡。在这种情况下,您需要直接在 <input>
字段上监听模糊事件。