-1

誰かがこれが機能しない理由を助けてもらえますか?

HTMLコード:

<li><a href="#" onclick="adminDBDisplay(ownorg);" >OOrg</a></li>
<li><a href="#" onclick="adminDBDisplay(twoorg);" >Twoorg</a></li>

jQuery:

$(document).ready(function(){
    function adminDBDisplay(db){
        alert("Got into function" +db);
        // Planning to use jQuery Ajax here
    } 
});

Firebugを使用して見ると、次のエラーが発生します。

"ReferenceError: adminDBDisplay is not defined"

誰かがこれが機能しない理由を教えてもらえますか?私がこれにどのように取り組んでいるかに何か問題があります。もっと良い方法があれば教えてください。ご協力いただきありがとうございます。

4

2 に答える 2

1

で関数を定義するときにfunction name() {...}、すでに関数内にいる場合は、その関数でのみ定義されます。

関数定義は.ready()、呼び出されるまで実行されないため、でラップしないでください。ラッパーを削除すると、準備が.ready()整います。

于 2013-02-03T22:26:22.253 に答える
1

次の表記法:

$(function() { ... });

それ自体はにバインドする関数function() {...}ですdocument.ready。また、で関数を実行すると、実行時に関数が定義adminDBDisplay(db){...}されるdocument.readyだけで、実際には呼び出されません。それを呼び出すために、あなたはしたいと思うでしょうadminDBDisplay('parameter');

これを効果的に実装するには、次のようにページの本文内に配置する必要があります。

<head>
<script src="yourversionofjquery.js"></script>
<script>
//Defining your function for calling later
function adminDBDisplay(db)
{
    alert("Got into function" +db);
    //Planning to use Jquery Ajax here
}
</script>
</head>
<body>
<script>
//Binding an anonymous function to document.ready
$(function () {
        //Do whatever you want after document.ready
    });
</script>
<div> rest of body</div>
</body>

それが理にかなっている/あなたのエラーを修正するかどうか私に知らせてください。

編集:また、「adminDBDisplay('ownorg');」のように、「ownorg」の前後に「一重引用符」を付けます。それ以外の場合は、ownorgという変数を探しています。

于 2013-02-03T22:37:36.207 に答える