javascriptjqueryhtmljquery-uinested-sortable

Uncaught TypeError: $(...).nestedSortable is not a function


I am try to use nested sort plugin from https://github.com/mjsarfatti/nestedSortable , but i keep getting this error

Uncaught TypeError: $(...).nestedSortable is not a function

This is my head

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title><?php echo $meta_title; ?></title>


    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="js/jquery-ui.js"></script>
    <script src="js/jquery.mjs.nestedSortable.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

This is the body

    <ol class="sortable">
    <li><div>Some content</div></li>
    <li>
        <div>Some content</div>
        <ol>
            <li><div>Some sub-item content</div></li>
            <li><div>Some sub-item content</div></li>
        </ol>
    </li>
    <li><div>Some content</div></li>
</ol>

Javascript code that i use

$(document).ready(function(){
    $('.sortable').nestedSortable({
        handle: 'div',
        items: 'li',
            toleranceElement: '> div'
    });
});

Please help me


Solution

  • I have tested nestedSortable and this code work

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
      <title><?php echo $meta_title; ?></title>
    
    
      <!-- Bootstrap -->
      <!-- <link href="css/bootstrap.min.css" rel="stylesheet"> -->
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
      <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
      <script src="http://mjsarfatti.com/sandbox/nestedSortable/jquery.mjs.nestedSortable.js"></script> 
    
    
          <script>
            $(document).ready(function(){
              $('.sortable').nestedSortable({
                handle: 'div',
                items: 'li',
                toleranceElement: '> div'
              });
            });
          </script>
        </head>
    
        <body>
    
          <div>
            <ol class="sortable">
              <li><div>Some content</div></li>
              <li>
                <div>Some content</div>
                <ol>
                  <li><div>Some sub-item content</div></li>
                  <li><div>Some sub-item content</div></li>
                </ol>
              </li>
              <li><div>Some content</div></li>
            </ol>
    
          </div>
        </body>
    

    try putting this code in a file and execute it. If it works dont use external links

    download the css and js keep them in your project folder and include them from there