- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试获取 John Resig 的 jQuery Live Search with Quicksilver Style使用选定的多窗体控件。他的代码基于John Nunemaker's Work开发他的 quicksilver.js代码。
我遇到的问题是,在一个选择框中,只有 Firefox 在选项值上支持 .hide(),我无法为 IE、Safari、Opera 和 Chrome 想出一个快速的方法。
这是一个例子,我内联了 John R 的代码,但你需要获取 quicksilver.js并自己在本地托管。同样,这在 Firefox 中运行良好,但对 rows.hide() 的调用在其他浏览器上没有任何作用。
我曾尝试将标签包装在一个 div 中并将其隐藏,但没有成功。
有什么想法吗?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>LiveSearch</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="../jquery/quicksilver.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#q').liveUpdate('#posts').focus();
});
jQuery.fn.liveUpdate = function(list){
list = jQuery(list);
if ( list.length ) {
// Changed 'li' to 'option' below
var rows = list.children('option'),
cache = rows.map(function(){
return this.innerHTML.toLowerCase();
});
this
.keyup(filter).keyup()
.parents('form').submit(function(){
return false;
});
}
return this;
function filter(){
var term = jQuery.trim( jQuery(this).val().toLowerCase() ), scores = [];
if ( !term ) {
rows.show();
} else {
rows.hide();
cache.each(function(i){
var score = this.score(term);
if (score > 0) { scores.push([score, i]); }
});
jQuery.each(scores.sort(function(a, b){return b[0] - a[0];}), function(){
jQuery(rows[ this[1] ]).show();
});
}
}
};
</script>
</head>
<body>
<form method="get" autocomplete="off" action="">
<div>
<input type="text" value="" name="q" id="q"><br><br>
<select id="posts" multiple name="choices" SIZE="10" style="width: 250px">
<option value="1">The Well-Designed Web</option>
<option value="2">Welcome John Nunemaker</option>
<option value="3">Sidebar Creative: The Next Steps</option>
<option value="4">The Web/Desktop Divide</option>
<option value="5">2007 in Review</option>
<option value="6">Don't Complicate the Solution</option>
<option value="7">Blog to Business</option>
<option value="8">Single Line CSS</option>
<option value="9">The Great Divide</option>
<option value="10">What's in a Name?</option>
</select>
</div>
</form>
</body>
</html>
最佳答案
最好的方法就是在 DOM 中添加和删除选项。
像这样:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('#q').liveUpdate('#posts').focus();
});
jQuery.fn.liveUpdate = function(list){
list = jQuery(list);
if ( list.length ) {
// Changed 'li' to 'option' below
var rows = list.children('option'),
cache = rows.map(function(){
return this.innerHTML.toLowerCase();
});
var all = rows;
all.each(function(i){
$(this).attr("itext", this.innerHTML.toLowerCase());
});
this
.keyup(filter).keyup()
.parents('form').submit(function(){
return false;
});
}
return this;
function filter(){
var term = jQuery.trim( jQuery(this).val().toLowerCase() ), scores = [];
if ( !term ) {
list.append(all);
} else {
rows.remove();
all.each(function(i){
var score = $(this).attr("itext").score(term);
if (score > 0) { scores.push([score, i]); }
});
jQuery.each(scores.sort(function(a, b){return b[0] - a[0];}), function(){
list.append(all[this[1]]);
});
rows = list.children('option');
}
}
};
</script>
编辑:
需要对数组“所有”而不是行进行评分。
关于javascript - 在多选列表框中使用 Quicksilver 样式的 jQuery Live Search,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623976/
我知道 quicksilver 有一个终端插件,但我会调用终端命令,这些命令基本上只是在后台运行,从不弹出终端窗口。那可能吗? 更新: 我的applescript中有以下代码,但它给了我一个错误: d
我正在使用 flexselect jQuery plugin简化大 上的选择列表,它使用了 Quicksilver algorithm灵活匹配(模糊匹配?)选项。 例如:输入3gscam快速匹配iP
我正在创建一个应用程序,我想在用户按下热键时向用户显示“弹出窗口”或“通知”。 我希望将其显示为 float 消息,就像您更改音量或亮度时出现的消息,或者像 Quicksilver 应用程序输入窗口一
mySQL 中的字符串排序算法 Quicksilver 评分算法 PHP Port Javascript Port MySql 端口(哦,没有链接)这是我的问题继续阅读 用法示例: score("he
这是为 Mac 上的 Java 程序员准备的。 如何使用 Quicksilver 对 Java API 文档进行编目?如果您可以通过几个按键来查找 API 文档,那不是很好吗? 最佳答案 Downlo
假设我有一个包含许多名称的数据库表。我想对这些名字进行“灵活匹配”。我不确定“灵活匹配”是否是合适的术语,但我们现在就使用它吧。已有similar discussions关于“模糊匹配”,但我对语音匹
我正在尝试获取 John Resig 的 jQuery Live Search with Quicksilver Style使用选定的多窗体控件。他的代码基于John Nunemaker's Work
我是一名优秀的程序员,十分优秀!