3

私がするときはいつでもjshint.comで

var this_hold = this;

エラーが発生します。

厳密なエラーの違反が発生します。

アプリケーションは、これ (イベント ハンドラーから渡される) を操作する必要があるか、自分で要素をプルする必要があるようなものです。document.getElementById()

これが、この関数が最もうまく機能する方法です... そうしないと、各ケースに対して 1 回ずつ 2 回記述する必要があります。

エラーをなくしたい..オフにしたくない. 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;
}
4

2 に答える 2

1

オプションvalidthisを使用して、その警告をオフにすることができます。残念ながら、静的分析を行うだけではすべての厳密なモード違反を検出できないため、JSHintは推測しますが、間違っている場合もあります。

ドキュメントの詳細validthisとその他のオプション:http ://www.jshint.com/docs/

于 2012-08-13T20:29:35.220 に答える
1

に割り当てることはできませんthis。読み取り専用です。

ただし、 の値thisを別の変数に代入することは誤りではなく、"use stict" ルールに違反しません。

于 2012-08-13T20:18:28.947 に答える