0

私はjqueryを初めて使用しますが、いくつかの問題で立ち往生しています。「hideAllMessages」関数を呼び出している次のコードのコードブロックである誰かが教えてください。('Info','Error','Warning','Success') をクリックしたとき

、関数を呼び出してhideAllMessagesいますが、コードのブロックがどれであるか、誰がこのタスクを行っているかを理解できません。

FIDDLE

次の行にはJavaScriptの「onclick」関数が存在しないためです。

<li><a href="#" class="trigger info-trigger">Info</a></li>

実際には、('Info','Error','Warning','Success')をクリックした後のコードの流れを知りたいです。

4

3 に答える 3

0

まず、

jQuery は、javascript と同様の方法で動作します。

関数は、呼び出されない限り「アクティブ化」されません。

コードを調べると、

$(document).ready(function{
    //insert code here
});

上記のコードは、ページが読み込まれた瞬間に上から下に実行されます。

このコードの実行が完了すると、jQuery は実行を停止します。

しかし、それぞれの「li」には「トリガー」機能があり、これにより show-message 機能がアクティブになり、それぞれのメッセージが表示されることにも気付くでしょう。

それがあなたのコードの仕組みです

編集:

$(document).ready(function(){
alert("ready function called");

     // Initially, hide them all
     hideAllMessages();

     // Show message
     for(var i=0;i<myMessages.length;i++)
     {
        showMessage(myMessages[i]);
     }

ページが読み込まれると、「showMessage 関数が 4 回呼び出されます。(ご覧のとおり、ページが読み込まれると 4 つのポップアップ メッセージが表示されます。)

showMessage 関数が呼び出されるたびに、特定の「タイプ」が送信されます。情報、エラーなどが含まれます。

function showMessage(type)
{
alert("showMessage function called");
$('.'+ type +'-trigger').click(function(){
      hideAllMessages();                  
      $('.'+type).animate({top:"0"}, 500);
});
}

ただし、これらの各 showMessage 関数では、実際には何も実行されておらず、関数は「ボタン」がクリックされたときにのみ実行されます。

$('.info-trigger'.click(function(){

上記の例では、「info」タイプが showMessage 関数に渡され、「type」が置き換えられるため、情報トリガーが生成されます。

情報ボタンがクリックされると、関数は最初に hideMessage 関数を実行し、次に animate 関数を実行します。

これが説明することを願っています。

于 2012-06-29T08:50:34.247 に答える
0

最初に、hideAllMessages();jquery からドキュメントの準備ができたときに呼び出されます。

その後、 yourshowMessage(myMessages[i]);が呼び出され、hideAllMessages();再びそのまま使用されますshowMessage()

于 2012-06-29T08:45:41.653 に答える
0

試してみてくださいCtrl+F:-) コードの次の部分を見落としているようです:

$(document).ready(function(){
    alert("ready function called");
    // Initially, hide them all
    hideAllMessages();
    ...

また、関数によってインストールされたクリック ハンドラからも呼び出されshowMessageます。

$('.'+ type +'-trigger').click(function(){
    hideAllMessages();                  
    $('.'+type).animate({top:"0"}, 500);
});

HTML に属性が存在する必要はありません。イベント リスナーonclickをインストールする通常の方法は、純粋に DOM タスク ( jQuery メソッド) です。

于 2012-06-29T08:45:54.310 に答える