diff --git a/README.md b/README.md index 4a99f8f..0ad4cea 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,10 @@ These advanced config options are also available: ## Change Log +### 6th October 2014 + +* [zemistr] Added support for adding classes via input data. (```[{"id": 1, "content": "First item", "classes": ["dd-nochildren", "dd-nodrag", ...] }, ... ]```) + ### 3th October 2014 * [zemistr] Added support for additional data parameters. diff --git a/bower.json b/bower.json index 6bde087..d9907ee 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "nestable2", - "version": "1.0.0", + "version": "1.1.0", "homepage": "https://github.com/RamonSmit/Nestable", "authors": [ "Ramon Smit <@_RamonSmit>", diff --git a/index.html b/index.html index 4610fed..99f7255 100644 --- a/index.html +++ b/index.html @@ -369,46 +369,7 @@

Nestable

-
-
    -
  1. -
      -
    1. -
      Item 3
      -
    2. -
    3. -
      Item 4
      -
    4. -
    5. -
      Item 5
      -
        -
      1. -
        Item 6
        -
      2. -
      3. -
        Item 7
        -
      4. -
      5. -
        Item 8
        -
      6. -
      -
    6. -
    7. -
      Item 9
      -
    8. -
    9. -
      Item 10
      -
    10. -
    -
  2. -
  3. -
    Item 11
    -
  4. -
  5. -
    Item 12
    -
  6. -
-
+
    @@ -505,7 +466,8 @@

    Nestable

    var json = [ { "id": 1, - "content": "First item" + "content": "First item", + "classes": ["dd-nochildren"] }, { "id": 2, diff --git a/jquery.nestable.js b/jquery.nestable.js index 9d8a605..53aabc9 100644 --- a/jquery.nestable.js +++ b/jquery.nestable.js @@ -183,11 +183,26 @@ function buildItem(item, options) { var children = item.children; var content = options.contentCallback(item); + var item_classes = {}; + var classes = item.classes || {}; delete item.children; + delete item.classes; delete item.content; - var html = "<" + options.itemNodeName + " class='" + options.itemClass + "'"; + for(var k in classes) { + // Remove duplicates + item_classes[classes[k]] = classes[k]; + } + + item_classes[options.itemClass] = options.itemClass; + + // create class string + var classes_string = $.map(item_classes, function(val) { + return val; + }).join(' '); + + var html = "<" + options.itemNodeName + " class='" + classes_string + "'"; $.each(item, function(key, value) { if(typeof value == 'object') {