0

次のコードがあります。

 var $form = '',
    $modal = '',
    $submits = ''; 

 function createModal() {
        $modal = $.modal({
            title: title,
            closeButton: true,
            content: content,
            resizeOnLoad: true
        });
        $form = $modal.find('.form');
        $message = $modal.find('.message');
        $submits = $modal.find('.submit-button');
        href = $form.attr('data-href');
    }

$form、$message、および $submits を $modal オブジェクトに追加する方法はありますか? それらはすべて関連しているためです。

4

1 に答える 1

1

データを jQuery オブジェクトに関連付けるには、data関数を使用できます。

jQuery.data() メソッドを使用すると、あらゆるタイプのデータを循環参照から安全な方法で DOM 要素にアタッチできるため、メモリ リークが発生しません。jQuery は、DOM 要素が jQuery メソッドによって削除されたとき、およびユーザーがページを離れたときに、データが削除されることを保証します。1 つの要素に複数の個別の値を設定し、後でそれらを取得できます。

  • jQuery.data(document.body, 'foo', 52);
  • jQuery.data(document.body, 'バー', 'テスト');

通常、いくつかのプロパティを jQuery オブジェクトに関連付けるだけでは、同じ要素をラップする別のオブジェクトからデータを取得できないため、これが必要になります。

あなたの場合、オブジェクトへの参照を保持している場合は、単に行うことができます

 function createModal() {
    var $modal = $.modal({
        title: title,
        closeButton: true,
        content: content,
        resizeOnLoad: true
    });
    return {
        $modal   : $modal,
        $form    : $modal.find('.form'),
        $message : $modal.find('.message'),
        $submits : $modal.find('.submit-button'),
        href     : $form.attr('data-href')
    };
}

var modal = createModal();

したがって、全体へのクリーンな参照を 1 つだけ保持し、modal.$modalまたはにアクセスできますmodal.$form

于 2012-10-06T17:04:59.407 に答える