jQuery自定义函数扩展:将数据存储到DOM元素中

时间:2017-01-11 17:55:10

标签: javascript jquery dom

我有这个简单的功能

$.fn.extend({

    initCustomFunction: function(){

        var obj = { // some data }
        $(this).data('myObj', obj); // I want to attach obj to this element

    }, 

    startCustomFunction: function(){

        var obj = $(this).data('myObj');

        // do something

    }
});

$('#myId').initCustomFunction();
$('#myId').startCustomFunction();

在这个例子中,我无法检索到myObj'对象内部' startCustomFunction'。我怎么解决这个问题?当我在特定元素上调用我的Init函数时,我想将一些数据附加到当前的DOM元素。

1 个答案:

答案 0 :(得分:1)

两个函数定义之间需要逗号。



$.fn.extend({

    initCustomFunction: function(){

        var obj = { foo: 'bar' };
        $(this).data('myObj', obj); // I want to attach obj to this element

    },

    startCustomFunction: function(){

        var obj = $(this).data('myObj');
        $('#result').text(obj.foo);

    }
});

$('#myId').initCustomFunction();
$('#myId').startCustomFunction();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="myId"></div>
<div id="result"></div>
&#13;
&#13;
&#13;