diff --git a/misc/states.js b/misc/states.js
index 6d98da8..d6153e7 100644
--- a/misc/states.js
+++ b/misc/states.js
@@ -18,6 +18,13 @@ Drupal.behaviors.states = {
   attach: function (context, settings) {
     var $context = $(context);
     for (var selector in settings.states) {
+      // check selector.data()
+      if($context.find(selector).data('states_init')) {
+        continue;
+      }
+
+      $context.find(selector).data('states_init', 1);
+
       for (var state in settings.states[selector]) {
         new states.Dependent({
           element: $context.find(selector),
