无法使jQuery可调整大小起作用:我做错了什么?

时间:2009-03-29 03:26:22

标签: jquery resize

这是我尝试测试jQuery resizable是否有效的简单代码。我使用google.load就可以使用其他jQuery组件了,我尝试将google.load换成本地版本,没有任何区别。我已经在3个浏览器中测试过,我从几个演示/教程站点(它在其网站上可以找到的地方)中复制了代码。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://www.google.com/jsapi?key=blahblah_obviously changed_blahblah-blahblah_blah_blahblahblah"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");google.load("jqueryui", "1.7.1");</script>
<style type="text/css">
   #resizable { width: 100px; height: 100px; background: silver; }
</style>
<script type="text/javascript">
  $(document).ready(function(){
  $("#resizable").resizable();
});
</script>
</head>
<body>  
 <div id="resizable"></div>
</body>
</html>

我没有收到任何错误消息。我的智慧结束了。我究竟做错了什么?为什么即使这个简单的案例也不起作用?

更新:jQuery UI库包含在google.load(“jqueryui”,“1.7.1”)行中;

3 个答案:

答案 0 :(得分:45)

jQuery UI在您的示例中工作正常,您遇到的问题是因为您的last test中没有包含任何CSS主题,并且未显示“可调整大小的句柄”图标。

添加own theme或默认值:

<link rel="stylesheet" type="text/css" 
href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/jquery-ui.css"/>

查看示例here

答案 1 :(得分:11)

你需要工作的所有CSS jquery ui .resizable():  (别忘了将图像保存到本地)

<style type="text/css">
.ui-icon { width: 16px; height: 16px; background-image: url(http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/base/images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
</style>

答案 2 :(得分:1)

你试过了吗?

<script type="text/javascript">
google.setOnLoadCallback(function() {
  $(function() {
    $("#resizable").resizable();
  });
});
</script>

值得注意的是google.load()是一个异步调用,你将无法调用jQuery函数,直到它们被加载,因此回调。

好的,看看你的例子,你遇到了一些问题:

  1. 这是最大的:你没有jQuery UI样式表;
  2. 你是两个,包括谷歌和本地的jQuery,jQuery UI和SWFObject;
  3. 可调整大小的div中的最后一个div阻止调整大小。不确定为什么,但我评论它,它工作正常;和
  4. 您不需要Google的AJAX Libraries API的API密钥。这不会引起问题。这只是FYI。
  5. 你的工作版本:

    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/themes/blitzer/jquery-ui.css">
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
    google.load("jquery", "1.3.2");
    google.load("jqueryui", "1.7.1");
    google.load("swfobject", "2.1");
    google.setOnLoadCallback(function() {
      $(function() {
        $("#resizable").resizable();
      });
    });
    </script>
    <style type="text/css">
      #resizable { width: 100px; height: 100px; background: silver; }
    </style>
    </head>
    <body>
    <div id="resizable">
      <div style="-moz-user-select: none;" unselectable="on" class="ui-resizable-handle ui-resizable-e"></div>
      <div style="-moz-user-select: none;" unselectable="on" class="ui-resizable-handle ui-resizable-s"></div>
      <!--<div unselectable="on" style="z-index: 1001; -moz-user-select: none;" class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se"></div>-->
    </div>
    </body>
    </html>