-1

SSRS Report Viewerによって生成されたWebページを取得し、それをdatepicker(標準jQuery)でオーバーレイするこのjQueryコードを研究しています。

ここでは、日付を受け取る入力テキスト ボックスを探します。

var span = innerTable.find("span:contains('Date')");
if (span) {
    var innerRow = $(span).parent().parent();
    var innerCell =  innerRow.find("td").eq(1);
    var textFrom = innerCell.find("input[type=text]");
    innerCell = innerRow.find("td").eq(4);
    var textTo = innerCell.find("input[type=text]"); 
}

なので、変数にどんな値が入るのか気になりますtextTo。これは、コードの後半で次のように記述しているためです。

$(textTo).focus(function () {
    $(textTo).datepicker("show");   
});

また、何をしfocus(function ()ますか?

ヒントをいただければ幸いです。

4

1 に答える 1

2

これは、ノードを表すjQueryオブジェクトになります。(注:シナリオでは、そのようなノードはおそらく1つだけですが、セレクターに一致するすべてのノードを返すinput[type=text]ことを知っておく必要があります。)これは基本的に、その特定のDOMオブジェクトを表すすべての情報をjQueryがラップすることです。オブジェクトを使用して、要素に関するさまざまな情報(CSSスタイル、親など)を取得したり、要素を操作したり、要素を削除したり、前に何かを追加したり、イベントリスナーを追加したりできます。findinputvalue

コードのウォークスルーは次のとおりです。

var innerRow = $(span).parent().parent(); // the grandparent of the `span` node
var innerCell =  innerRow.find("td").eq(1); // the second (index 1) table cell inside the row we just found in the previous line
var textFrom = innerCell.find("input[type=text]"); // the input elements inside that cell
innerCell = innerRow.find("td").eq(4); // the fifth (index 4) table cell inside the row from line 1
var textTo = innerCell.find("input[type=text]"); // the input elements inside the cell found in the previous line

質問の2番目の部分に関しては、要素がフォーカスを取得したとき、つまりカーソルが要素内に移動したときに、focusリスナーは関数を実行します。inputこれは、ユーザーが要素内を直接クリックするか、フォーム内の別の要素から要素にタブで移動した場合に発生する可能性があります。具体的には、コードは次のように述べています。これにinput焦点が当てられたら、日付ピッカーを表示します。

于 2013-02-26T00:27:13.387 に答える