2011-12-05 18 views
1

私はオブジェクト指向プログラミングの新人です。私は関数にパラメータとして要素クラスを渡そうとしています。私は、私が何かを見逃している知っている...以下のコードを参照してください。JQueryを使って変数classNameをオブジェクト関数に渡すにはどうすればいいですか?

var n = new Object(); 

n.mousePosition = function(class, y){ 
    $(document).mousemove(function(e){ 
     if(e.pageY < y){ $(class).slideDown(200); } 
     if(e.pageY > y){ $(class).slideUp(200); } 
    }); 
} 
n.mousePosition('.nav', 100); 

.nav$(class).slideDown...がそれを拾っていない、私はclassパラメータとして私の関数に渡すためにしようとしている要素のクラス名です。

任意の助けをいただければ幸いです、ありがとう

+4

をjsfiddle例を参照します別の変数名(例えば、 'elemClass')を使用する場合は? –

+0

@DavidThomasありがとうございました – Nasir

+0

下のいくつかの答えの中心的テーマだった心配はありません。だから解決したら、それらのうちの1つを受け入れるべきです) –

答えて

2

classはJavaScriptの予約キーワードです。異なるものを使用してください(例:代わりにclassNameをパラメータ名として使用します。 classが予約語であることを

1

Classが予約語で、その問題を回避するために何か他のもの、すなわちでそれを前置き... myClass

さらに、classの前には、にはが必要です。それをパラメータとして渡すときに使用されます。

n.mousePosition('nav', 100); 
+0

しかし、彼は関数にドット(。)を追加する必要があります。後でそれを他のセレクタに変更できるので、 '.nav'を渡すのが最も良いです –

+1

jQueryが使用されているため、予約語には+1、そういう意味ではclassNameの前に '.'を付ける必要があります。 – zzzzBov

+0

@AaronMcIverあなたのご意見ありがとうございます。 DavidThomasのコメントはトリックでした – Nasir

0

注:

function t(class) } 
    console.log(class); 
} 

t("test") 

結果(Firefoxの8.0):

SyntaxError: class is a reserved identifier

className(または類似)に名前を変更してみます。

more 一般的なアドバイス私は、Firebugまたはjsfiddleでスニペットを実行するか、エラーを公開した他の環境でデバッグすることでこのエラーを簡単にキャッチできたと思います。

0

classは予約キーワードです。 klass

var n = new Object(); 

n.mousePosition = function(klass, y){ 
    $(document).mousemove(function(e){ 
     if(e.pageY < y){ $(klass).slideDown(200); } 
     if(e.pageY > y){ $(klass).slideUp(200); } 
    }); 
} 
n.mousePosition('.nav', 100); 

はclass`は何が起こるか、JavaScriptで[予約語(https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words)である `アクションでhttp://jsfiddle.net/anuraguniyal/LBfBn/4/

関連する問題