0

I have mixin like this:

@mixin sprite-icon-pos-each() {

    $icons: sprite-map("icons/*.png", $spacing: 1px);
    $icon-names: "vk", "fb", "tw", "gp", "ok";

    @each $item in $icon-names {
        &_tp_#{$item} {
            @include sprite-icon-pos($item);
            }
            &_tp_#{$item}:hover {
                @include sprite-icon-pos(#{$item}_hover);
                }
    }

} 

Its work fine, but How can I set $icon-names: "vk", "fb", "tw", "gp", "ok" when I includ mixin. Something like this:

@mixin sprite-icon-pos-each($icons) {

    $icons: sprite-map("icons/*.png", $spacing: 1px);

    @each $item in $icon-names {
        &_tp_#{$item} {
            @include sprite-icon-pos($item);
            }
            &_tp_#{$item}:hover {
                @include sprite-icon-pos(#{$item}_hover);
                }
    }

}

.some-selector {
    @include sprite-icon-pos-each($icon-names: "vk", "fb", "tw", "gp", "ok");
}

When I do so, compass generantes error "positional arguments must come before keyword arguments".

sikwel
  • 1
  • 2
  • possible duplicate of [Can a sass @mixin accept an undefined number of arguments?](http://stackoverflow.com/questions/7895796/can-a-sass-mixin-accept-an-undefined-number-of-arguments) – cimmanon Feb 24 '15 at 23:27

1 Answers1

0

I figured out why it doesn't work. Аrguments must be enclosed in parentheses:

@include sprite-icon-pos-each($icon-names: ("vk", "fb", "tw", "gp", "ok"));

sikwel
  • 1
  • 2