0

私は新しいプロジェクトに取り組んでおり、「data-js」属性を使用しています。現在、各 data-js 属性を手動で切り替えているため、たとえば次のようになります。

$(this).attr('data-js', $(this).attr('data-js') == 'unstar' ? 'star' : 'unstar')

次のようなjQueryのプラグインスタイルの拡張機能を作成するための「シェル」があります。

!function($) {
            $.fn.toggleData = function(options) {
                var settings = $.extend({
                    someEvent: function() {
                        alert('default')
                    }
                }, options)

                return this.each(function() {
                    settings.someEvent()
                })
            }
        }(jQuery)

したがって、私が基本的に望んでいるのは、次のような関数を作成することです。これは、すべての data-js 属性で再利用できます。

$('[data-js=unstar]').click(function(){
    $(this).toggleData('unstar', 'star')

})

これを行う方法、またはより良い方法についての考え!...大歓迎です。

4

1 に答える 1

0

これはあなたが求めているものですか?クローンを入れて、将来のすべての [data-js] データ型で動作することを実証しました。

$('body').on('click', '[data-js]', function () {

if ($(this).attr('data-js') == 'unstar' || $(this).attr('data-js') == 'star') {

    $(this).attr('data-js', $(this).attr('data-js') == 'unstar' ? 'star' : 'unstar');


    alert($(this).attr('data-js'));
    $(this).clone().insertAfter(this);

}
});
于 2013-04-24T11:37:57.807 に答える