我在我的网站上使用jqtransform。当用户在他们身上时,他们可以使用热键来移动选择。我添加了这个功能:
$wrapper.find('a').keydown(function (e) {
var Esc = 27;
var code = (e.keyCode ? e.keyCode : e.which);
if(code== Esc || (code>=65 &&code<=90)){
var letter = String.fromCharCode(code);
if (code==Esc)
keyCodes = "";
else{
if (keyCodes=='')
keyCodes += letter;
else
keyCodes += letter.toLowerCase();
var item = $wrapper.find('a[text^=\'' + keyCodes + '\']:first');
item.click();
}
}
});
在$ .fn.jqTransSelect内部。
此代码适用于除IE之外的所有浏览器。我唯一能找到的是IE不喜欢click事件。有人可以帮我这个吗?
如果我调试代码,我可以看到该项是一个选择而不是像我期望的那样的锚,这让我更加困惑。
答案 0 :(得分:2)
IE似乎没有正确执行$('a[text^=\'' + keyCodes + '\']:first')
选择器
仔细看看contains selector。注释中包含选择器有一些变体。
我使用regexcontains选择器
$.expr[':'].regexcontains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').search(new RegExp(meta[3], "ig")) >= 0;
作为
var item = $wrapper.find("a:regexcontains('^" + keyCodes + "'):first");