Javascript &引用;可拖动不是一个函数;当在另一个函数中时

Javascript &引用;可拖动不是一个函数;当在另一个函数中时,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我试图在用户单击按钮时激活jqueryui.draggable函数。脚本包括在内并正常,因为当我使用以下代码时,一切都正常工作: <script> function test() { $( ".bord" ).draggable({ containment: ".rom", scroll: false }); } test() </script> 功能测试(){ $(“.bord”).draggable({containment:.rom”,scroll:false}

我试图在用户单击按钮时激活jqueryui.draggable函数。脚本包括在内并正常,因为当我使用以下代码时,一切都正常工作:

<script>
function test() {
$( ".bord" ).draggable({ containment: ".rom", scroll: false });
}
test()
</script>

功能测试(){
$(“.bord”).draggable({containment:.rom”,scroll:false});
}
测试()
那么.bord类是可拖动的。但我希望它只有在单击按钮时才可拖动,因此我使用以下代码:

<script>
function test() {
$( ".bord" ).draggable({ containment: ".rom", scroll: false });
}
$("#bordplassering").click(function() {
    test();
});
</script>

功能测试(){
$(“.bord”).draggable({containment:.rom”,scroll:false});
}
$(“#bordplassering”)。单击(函数(){
test();
});
现在问题开始了。。。这给了我以下错误:

“类型错误:$(…)。可拖动不是一个函数”

为什么

请这样使用:(您必须在document.ready函数中移动您的单击函数)


功能测试(){
$(“.bord”).draggable({containment:.rom”,scroll:false});
}
$(文档).ready(函数(){
$(“#bordplassering”)。单击(函数(){
test();
});
});
请这样使用:(您必须在document.ready函数中移动您的单击函数)


功能测试(){
$(“.bord”).draggable({containment:.rom”,scroll:false});
}
$(文档).ready(函数(){
$(“#bordplassering”)。单击(函数(){
test();
});
});
尝试以下结构:

 <script>
      $(function() {
        $(".bord").draggable({containment: ".rom", scroll: false});
      });
  </script>

$(函数(){
$(“.bord”).draggable({containment:.rom”,scroll:false});
});
但在开始之前:

  • 在调用之前,jQuery库必须存在于
  • 在调用之前,jQuery UI库必须存在于
  • 此外,你还应该阅读和

    试试这个结构:

     <script>
          $(function() {
            $(".bord").draggable({containment: ".rom", scroll: false});
          });
      </script>
    
    
    $(函数(){
    $(“.bord”).draggable({containment:.rom”,scroll:false});
    });
    
    但在开始之前:

  • 在调用之前,jQuery库必须存在于
  • 在调用之前,jQuery UI库必须存在于

  • 此外,你还应该阅读和

    我建议只在开始时应用Dragble功能,单击可以使用enable和disable方法使其无法和disable

    使用document.ready

    $(document).ready(function() {
        $( ".bord" ).draggable({ containment: ".rom", scroll: false });
        $( ".bord" ).draggable( "disable" );
        $("#bordplassering").click(function() {
           $(".bord").draggable( "enable" );
        });
    });
    

    我建议只在开始时应用draggable函数,单击可以使用enable和disable方法使其无法和禁用

    使用document.ready

    $(document).ready(function() {
        $( ".bord" ).draggable({ containment: ".rom", scroll: false });
        $( ".bord" ).draggable( "disable" );
        $("#bordplassering").click(function() {
           $(".bord").draggable( "enable" );
        });
    });
    

    谢谢大家的帮助。正如在这里的评论中指出的,问题是jQuery第二次加载到footer.php-file中


    当然还有很多改进代码的好主意。

    谢谢大家的帮助。正如在这里的评论中指出的,问题是jQuery第二次加载到footer.php-file中


    当然还有很多改进代码的好主意。

    您是否在html中添加了jquery ui?只是看起来代码中的其他地方将其从jquery中删除了。也许您不止一次包含jQuery,而且是包含jQuery UI之后的最后一次。或者可能只是
    $
    不再指jquery,实际上这就是问题所在-谢谢!jQuery第二次被加载到footer.php文件中,并与一些基础文件一起加载。谢谢大家!您是否在html中添加了jquery ui?看起来就像代码中的其他地方将其从jquery中删除一样。也许您不止一次包含jQuery,而且是包含jQuery UI之后的最后一次。或者可能只是
    $
    不再指jquery,实际上这就是问题所在-谢谢!jQuery第二次被加载到footer.php文件中,并与一些基础文件一起加载。谢谢大家!