您将无法连接两个事件您可以使用setTimeout (...)在模糊事件处理程序中等待,比如说100毫秒。然后在click处理程序中设置一个标志为true,setTimeout中的回调将在擦除表单域的值之前进行检查。
编辑:一些工作的代码,我认为作品你打算......
<!DOCTYPE HTML>
<html>
<head>
<title>Filter Blur Demo</title>
</head>
<body>
<table>
<tbody>
<tr>
<th>Apples</th>
<td><input type="text"> <button class="glyphicon-filter">Filter...</button>
(defaults)</td>
</tr>
<tr>
<th>Oranges</th>
<td><input type="text" data-filter-icon-timeout="2000"> <button class="glyphicon-filter">Filter...</button>
(custom timeout)</td>
</tr>
<tr>
<th>Bananas</th>
<td><input type="text" data-filter-icon-selector="a"> <a href="#" class="glyphicon-filter">Filter...</a>
(custom filter icon selector)</td>
</tr>
</tbody>
</table>
<ol>
<li>
<label>Peaches</label>
<input type="text"
data-filter-icon-container="li"
data-filter-icon-timeout="250"
data-filter-icon-selector="a"
data-filter-cleared-out-selector="label"
data-filter-cleared-out-value="n/a">
<a href="#" class="glyphicon-filter">Filter...</a>
(everything but the kitchen sink)
</li>
</ol>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
function filterBlurred(event) {
//console.info("blur");
var input = event.target,
filterIconSelector = input.getAttribute("data-filter-icon-selector") || ".glyphicon-filter",
containerSelector = input.getAttribute("data-filter-icon-container") || "tr",
clearedOutSelector = input.getAttribute("data-filter-cleared-out-selector") || "th",
clearedOutValue = input.getAttribute("data-filter-cleared-out-value") || " ",
timeout = Number(input.getAttribute("data-filter-timeout")) || 250,
$row = $(input).closest(containerSelector),
$icon = $row.find(filterIconSelector),
clearInput = function() {
if (!input.value) {
if ($icon.attr("data-filter-icon-clicked") !== "yes") {
$row.find(clearedOutSelector).html(clearedOutValue);
}
$icon.attr("data-filter-icon-clicked", "");
}
};
setTimeout(clearInput, isNaN(timeout) ? 250 : timeout);
}
function glyphiconFilterClicked(event) {
event.target.setAttribute("data-filter-icon-clicked", "yes");
//console.info("click", event.target);
event.preventDefault();
// do other stuff
}
$(document)
.on("blur", "input", filterBlurred)
.on("click", ".glyphicon-filter", glyphiconFilterClicked);
</script>
</body>
</html>
你应该能够复制并粘贴到一个HTML文件,保存它,然后加载它在浏览器。它在Firefox中为我工作。
在这种情况下,“标志”是图标元素上的HTML5数据属性。这使得事情非常可定制且可重用。
你的意思是'删除所有内容'它是一个窗体重置? – Sekai
该行中的所有th元素都通过非空白空格替换其中的html来清除。 –