2010-11-18 6 views
0

これはコードの一部です。問題は、この行"$("#b_facetNewChild").button().click(function(){"は、「facetNewChild」ボタンをクリックしたときに次のことが起こることを意味していますか?ボタンには "onClick"機能がないためです。また、これを別の関数 "newChildFacet()"にネストして呼び出す方法とは何ですか? 申し訳ありませんが、私はjavascriptに新しいです。ありがとうございます!JavaScript関数の呼び出し方法を理解する必要があります

function newChildFacet() 
    { 
     // button click 
     $("#b_facetNewChild").button().click(function(){ 
       //get selected fId 
      var $fId=getSfSelectedFIds(); 
      if($fId.length>0 && $fId.split(",").length!=1) 
      { 
       messageBox("Tip","Please select <b>ONE</b> as the parent facet. If no facet is selected, the new facet will be created under <b>root</b>."); 
       return false; 
      } 

      //some more stuff here! 
     }); 

     // newChildFacetDialog 
     $("#newChildFacetDialog").dialog({ 
      autoOpen: false, 
      modal: true, 
      title: "New Child Facet", 
      buttons: { 
       "Cancel": function() { 
        $(this).dialog('close'); 
       }, 
       "Create": function() { 
        //get data 
        var $parentId=getSfSelectedFIds(); 

        }); 
        $(this).dialog('close'); 
       } 
      } 
     }); 

    } 
+0

jquery specific – mpapis

答えて

0

まず#b_facetNewChildがクリックされたときに、それが実行されますので、はい、それはclickイベントハンドラとしてバインド、 - あなたがソースでこれを見ることはありません、それは他の場所DOMで保存されています。

あなたはこのように、その要素にclickイベントハンドラを呼び出すことによって、それを呼び出すことができます:それはそれは、ネストされた/無名関数だということは重要ではありません

$("#b_facetNewChild").click(); 

、私たちがここで気にすべてが、それはclickだです次のいずれかの方法でトリガーすることができます。

$("#b_facetNewChild").click(); 
$("#b_facetNewChild").trigger("click"); 
$("#b_facetNewChild").triggerHandler("click"); 
+0

どうすればよいですか?ボタンをクリックすると、この関数を呼び出す必要があります。それはすでにそれに設定されていますか? –

+0

@Ahmad - 'newChildFacet()'を実行すると、 'click'ハンドラをフックして、それをクリックして実行します。DOMのロード後、ある時点で' newChildFacet() 'を必ず呼び出してください。 –

+0

これがページファイル以外の外部ファイル.jsで書かれた場合、これはどういう違いがありますか? 「DOM」は正確に何か分かりません。 –

0

あなたは正しいと思います。

$("#b_facetNewChild").button().click(function(){ ... })正確には何を意味しますか。ただし、HTML内にonclickハンドラは表示されませんが、DOM/JS要素自体を(たとえば、FireBugを使用して)調べる場合にのみ表示されます。

この呼び出しが関数内にあるということは、ラッピング関数が呼び出されると、呼び出される(つまり、ボタンにコールバックが付加される)ことを意味します。

関連する問題