问题描述
|
这是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\",\"tabContent2.html\").tabs(\"load\",2);
}
});
});
</script>
如果我转换为CakePHP的格式。
你能给我一个例子吗?我尝试阅读螺母和螺栓和CakePHP手册,但我听不懂。
谢谢。
解决方法
不要打扰
Cake 1.3 JsHelper就是这样-一个旨在抽象出最常见和重复性代码的助手-ajax分页,简单元素加载,适合于导航元素的动画等等。该库随它一起提供,对于3种最受欢迎的javascript库都是通用的-jQuery,MooTools和Prototype(默认为jQuery,可以在控制器中进行更改),以便开发人员可以选择自己喜欢的口味,使用多个库等。由于抽象仅涵盖了库倾向于提供的最常见的行为,因此您很有可能想要使用的其他任何东西也将很容易匹配。
对于它所做的事情,它非常出色-主要是DRY调用,使繁琐的工作摆脱了行为。但是,它是一个抽象层。它不能代替客户端脚本,尤其是对于任何远程复杂的应用。我建议不要花费大量时间来构建自定义功能,因为生成的代码中出现的任何问题都很难调试,更不用说修复了。无论如何,Cake所做的只是写出要包含在标记中的代码。
只需本地编写客户端代码,然后将其包含在$ this-> Html-> scripts()或缓冲区中并执行即可。它更加可靠,可预测和可管理。