0

基本的に私はドラッグ アンド ドロップ アプリケーションを持っていて、物事が所定の位置にドロップされたときに特定の要素にブートストラップ ポップオーバーを設定したいと考えています。これは私がこれまでにセットアップしたものです(その後、.popoverをアクティブにしました):

            $(this).find(".simple-editable").attr({
                "rel":"popover",
                "data-html":"true",
                "data-content":"<div class='simple-edit-box'><form>" +
                    "<input type='text' placeholder='" + $(this).html() + "'>" +
                    "<button type='save' class='btn-success'>Save</button> </form></div>",
                "data-placement":"top"
            })

ただし、 $(this).html() は DIV 全体を (本来あるべきように) 取り込んでいますが、そのプレースホルダーとして必要なのは、その特定の .simple-editable クラス内のコンテンツだけです。したがって、私の基本的な質問は、.find() を使用しているときに、jquery が現在変更している変数にアクセスする方法があるということです。

4

2 に答える 2

3
var simpleEditable = $(this).find(".simple-editable");
simpleEditable.attr({
    "rel":"popover",
    "data-html":"true",
    "data-content":"<div class='simple-edit-box'><form>" +
    "<input type='text' placeholder='" + simpleEditable.html() + "'>" +
        "<button type='save' class='btn-success'>Save</button> </form></div>",
    "data-placement":"top"
});

より一般的には、「this」キーワードを再割り当てするスコープ内で「this」にアクセスする場合は、次のように参照をキャッシュします。

var self = $(this);
self.find(".simple-editable").attr({
   // in here, self.find(".simple-editable") works 
   // whereas $(this).find(".simple-editable") will return an empty array
});
于 2013-01-24T22:14:05.803 に答える
1

私はそうは思いません。検索クエリをキャッシュしてから、その要素の.html().

于 2013-01-24T22:14:08.987 に答える