我可以为jQuery原型创建的对象添加属性吗?

时间:2012-10-06 17:03:46

标签: javascript jquery

我有以下代码:

 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对象中,因为它们都是相关的。

1 个答案:

答案 0 :(得分:1)

要将数据关联到jQuery对象,您可以使用data函数:

  

jQuery.data()方法允许我们将任何类型的数据附加到DOM   元素以一种不受循环引用安全的方式,因此   没有内存泄漏。 jQuery确保在何时删除数据   DOM元素通过jQuery方法删除,并在用户离开时删除   这页纸。我们可以为单个元素设置几个不同的值   稍后检索它们:

     
      
  • 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