最终目标:鼠标用户的漂亮页面,键盘用户的可访问页面.我想要的效果是点击一个锚点,在此期间不产生轮廓,之后不留任何轮廓.此外,我希望键盘标签移动焦点,从而围绕具有轮廓的项目.以下代码适用于FF(我假设其他现代浏览器,但我明天必须在办公室测试它们),但不是IE6-8.问题在于onmousedown似乎没有按预期模糊:
var links = document.getElementsByTagName('a');
for (var i=0; i < links.length; i++) {
links[i].onmousedown = function () {
this.blur();
return false;
}
links[i].onclick = function() {
this.blur();
}
}
Run Code Online (Sandbox Code Playgroud)
一个折衷方案是,如果任何人有一个解决方案可以处理IE中的情况,用户将鼠标放下,鼠标离开锚点,然后鼠标移动,并且不留下任何轮廓将是朝着正确方向迈出的一步.谢谢.
编辑:2010年3月5日,星期五我最深切的抱歉花了这么长时间才回到这一点,但我需要一个在尽可能多的浏览器中工作的解决方案.好吧,事实证明,只需要一些大纲,课程和焦点管理,不需要超时.以下解决方案适用于IE6 +,FF2 +,Safari 3+和Chrome.我没有在Opera中测试,但是如果有人能够确认/否认它有效,我会很高兴.接下来是比纯js更多的suedo-code.我把它作为练习让读者在你最喜欢的框架中实现:
var anchorEventIsMouse = true;
$('a').mousedown(function() {
anchorEventIsMouse = true;
this.hideFocus = true; /* IE6-7 */
this.style.outlineStyle = 'none'; /* FF2+, IE8 */
this.addClass('NoOutline'); /* see click func */
this.setFocus(); /* Safari 3+ */
});
$('a').keydown(function() {
anchorEventIsMouse = false;
});
$('a').blur(function() {
this.style.outlineStyle = '';
this.hideFocus …Run Code Online (Sandbox Code Playgroud) 我在Windows 7上使用Netbeans 6.9和7-Beta.根据Netbeans javascript文档,应该可以向我的项目添加文档并在我的类和函数上自动完成.我遇到的麻烦是我正在使用我自己的类声明(通过一个被调用的函数Class)并且似乎无法使事情正常工作.例如,一个简单的类声明看起来像:
mySubClass = Class(parentClass, {
memberVariable: null,
/**
* @class mySubClass
* @constructor
*/
initialize: function(value) {
this.memberVariable = value;
},
/**
* @class mySubClass
*/
getMV: function() {
return this.memberVariable;
},
/**
* @class mySubClass
*/
setMV: function(value) {
this.memberVariable = value;
}
});
Run Code Online (Sandbox Code Playgroud)
我试过的声明(许多变化和展示位置@class,@memberOf等),但无法获得完成工作.例如之后,
var testObj = new my
Run Code Online (Sandbox Code Playgroud)
我应该可以mySubClass通过点击"ctrl + space"获得并同样继续:
var test = new mySubClass(1);
test.
Run Code Online (Sandbox Code Playgroud)
并获得期权getMV和setMV.这是可能的,如果是这样,我该怎么办?谢谢.