每当我这样做时都会在 jshint.com 上
var this_hold = this;
我收到一个错误。
我收到违反严格错误。
该应用程序是这样的,我需要使用 this (从事件处理程序传入)或者我需要使用自己拉取元素document.getElementById()
这就是这个函数最好的工作方式......否则我必须为每种情况编写两次。
我希望错误消失......我不想将其关闭。我希望 jshint.com 100% 快乐。
这是有问题的函数,并注释了违规行为
/**
*vFlipBP - eliminate select_element in favor of 'this'
*/
function vFlipBP( element_or_string ) {
var previous_page_element,
previous_tag_element,
current_page_element,
select_element;
console.log( 'element_or_string ' + element_or_string );
if( typeof ( element_or_string ) === 'string' ) {
select_element = document.getElementById( element_or_string );
} else {
select_element = this; // violation of strict here
}
if( vFlipBP.previous_id === undefined ) {
var probe_id = select_element.parentElement.firstChild.id;
if ( ( probe_id === select_element.id ) && ( select_element.parentElement.firstChild.nextSibling ) ) {
probe_id = select_element.parentElement.firstChild.nextSibling.id;
vFlipBP.previous_id = probe_id;
} else {
vFlipBP.previous_id = select_element.id;
}
}
current_page_element = document.getElementById( select_element.id + '_page' );
current_page_element.style.display = '';
select_element.style.background = "#eeeeee";
if( vFlipBP.previous_id !== select_element.id ) {
previous_page_element = document.getElementById( vFlipBP.previous_id + '_page' );
previous_tag_element = document.getElementById( vFlipBP.previous_id );
if( ( ( previous_page_element !== current_page_element ) ) && ( previous_page_element !== null ) ) {
previous_page_element.style.display = 'none';
previous_tag_element.style.background = "#ffffff";
}
}
vFlipBP.previous_id = select_element.id;
}
您可以使用一个选项validthis
关闭该警告。不幸的是,仅通过静态分析无法检测到所有严格模式违规,因此 JSHint 会进行猜测,有时它是错误的。
更多关于validthis
以及我们文档中的其他选项:http://www.jshint.com/docs/ http://www.jshint.com/docs/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)