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 确保在通过 jQuery 方法删除 DOM 元素以及用户离开页面时删除数据。我们可以为单个元素设置几个不同的值并稍后检索它们:

  • jQuery.data(document.body, 'foo', 52);
  • jQuery.data(document.body, 'bar', 'test');

您通常需要这个,因为简单地将一些属性关联到 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();

因此,您只保留对整个事物的一个干净引用,您可以访问modal.$modalmodal.$form.

于 2012-10-06T17:04:59.407 回答