0

私は興味深いセレクターステートメントを持っています:

$("span#dateofbirth").bind('click', function() {
  $("span#dateofbirth>form>input.inplace_field").blur();
  $("span#dateofbirth>form>input.inplace_field").removeClass("inplace_value");
  $("span#dateofbirth>form>input.inplace_field").datepicker({dateFormat:'yy-mm-dd'});
  $("span#dateofbirth>form>input.inplace_field").addClass("inplace_value");
  $("span#dateofbirth>form>input.inplace_field").focus();
});

これは、jQuery UI datepickerをEdit-in-Placeプラグインで機能させるために、実際には他の誰かによって挿入されました。それは何よりもハック/バンドエイドのようです。しかし、それは機能します。

引き続き作業を続けたいのですが、日付のある要素に対してよりグローバルになるように変更したいと思います。

だから、私はスパンにクラスを与えました.datepicker

ただし、バインドは特定のIDを優先するため、その要素にローカライズすることはできません。

$(this)セレクターステートメントの残りの部分と組み合わせて、おそらくを使用して、これを回避する方法はありますか?

おそらく、の線に沿った何か?

$("span.datepicker").bind('click', function() { 

  $(this+">form>input.inplace_field").blur();

});
4

3 に答える 3

2

セレクターは通常の文字列です。

あなたは書き込もうとしています

$(this).find(">form>input.inplace_field")
于 2012-12-13T01:50:48.343 に答える
2

使用する.find()

$(this).find(">form>input.inplace_field")

また

$(">form>input.inplace_field" , this)  // Provide a context to search in

JS

$("span#dateofbirth").bind('click', function() {
  $(">form>input.inplace_field" , this).blur()
          .removeClass("inplace_value")
          .datepicker({dateFormat:'yy-mm-dd'})
          .addClass("inplace_value")
          .focus();
});

DOMchainにクエリを実行する時間を短縮するには、cacheセレクターを使用する必要があります。

于 2012-12-13T01:51:17.850 に答える
0

子セレクター>はjQueryセレクターで非推奨になりました(CSSでは引き続きOKです)。

次の行に沿って何かを使用する必要があります。

$(".datepicker").on('click', function() {
  $(this).children("form").children("input.inplace_field").blur()
          .removeClass("inplace_value")
          .datepicker({dateFormat:'yy-mm-dd'})
          .addClass("inplace_value")
          .focus();
});
于 2012-12-13T02:36:23.243 に答える