将Javascript格式更改为CakePHP格式

时间:2011-06-13 03:14:50

标签: javascript cakephp

这是jQuery UI代码示例:

 <script type="text/javascript">
  //function to execute when doc ready
  $(function() {

    //make tooltip on mouseover
    $("#container a").mouseover(function(e) {

      //create tooltip
      $("<div>").text($(this).attr("title")).addClass("tooltip ui-widget-header ui-corner-all").css({left:e.pageX, top:(e.pageY - 40)}).appendTo($("body"));

      //set timeout to show tooltip
      tip = setTimeout("$('.tooltip').show('drop', { direction:'up' }); ", 750);

      //suppress title
      $(this).attr("title", "");

    });

    //make tip track with pointer
    $("#container a").mousemove(function(e) {
      $(".tooltip").css({'left':e.pageX, 'top':e.pageY - 35});
    });

    //remove tooltip on mouseout
    $("#container a").mouseout(function(e) {

      clearTimeout(tip);

      //put title text back
      $("#" + e.target.id).attr("title", $(".tooltip").text());

      //hide and remove tooltip
      $(".tooltip").remove();
    });
  });
</script>



    <script type="text/javascript">
  //define function to be executed on document ready
  $(function(){

    //create the tabs
    $("#myTabs").tabs();

    //define handler for change event on select element
    $("#fileChooser").change(function() {

      //load either file 1 or file 2
      this.selectedIndex == 0 ? loadFile1() : loadFile2();

      //load the new file
      function loadFile1() {
        $("#myTabs").tabs("url", 2, "tabContent.html").tabs("load", 2);
      }

      function loadFile2() {
        $("#myTabs").tabs("url", 2, "tabContent2.html").tabs("load", 2);
      }
    });
  });

</script>

如果我转换为CakePHP的格式。 你能举个例子吗?我尝试阅读nut和bolt以及CakePHP手册,但我不明白。

谢谢。

1 个答案:

答案 0 :(得分:3)

不要打扰。

Cake 1.3 JsHelper只是 - 帮助旨在抽象最常见和重复的代码 - ajax分页,简单元素加载,适合导航元素的动画,之类的事情。它随附的库是3个最流行的javascript库的通用 - jQuery,MooTools和Prototype(默认为jQuery,可以在控制器中更改),因此开发人员可以选择他们喜欢的任何风格,使用多个库等因为抽象只涵盖了图书馆所提供的最常见的行为,所以你可能想要使用的其他任何东西也都很有可能。

对于它的作用,它非常精彩 - 它主要是一个DRY调用,并且从行为中消除了苦差事。但是,它是一个抽象层。它不会取代客户端脚本,尤其是对于任何远程复杂的脚本。我建议不要花费大量时间来构建自定义功能,因为生成的代码中出现的任何问题都难以调试,更不用说修复了;所有Cake正在做的是写出要包含在标记中的代码。

只需编写客户端代码,并将其包含在$ this-&gt; Html-&gt;脚本()或缓冲区中并执行它。它更加可靠,可预测和易于管理。