这是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手册,但我不明白。
谢谢。
答案 0 :(得分:3)
不要打扰。
Cake 1.3 JsHelper只是 - 帮助旨在抽象最常见和重复的代码 - ajax分页,简单元素加载,适合导航元素的动画,之类的事情。它随附的库是3个最流行的javascript库的通用 - jQuery,MooTools和Prototype(默认为jQuery,可以在控制器中更改),因此开发人员可以选择他们喜欢的任何风格,使用多个库等因为抽象只涵盖了图书馆所提供的最常见的行为,所以你可能想要使用的其他任何东西也都很有可能。
对于它的作用,它非常精彩 - 它主要是一个DRY调用,并且从行为中消除了苦差事。但是,它是一个抽象层。它不会取代客户端脚本,尤其是对于任何远程复杂的脚本。我建议不要花费大量时间来构建自定义功能,因为生成的代码中出现的任何问题都难以调试,更不用说修复了;所有Cake正在做的是写出要包含在标记中的代码。
只需编写客户端代码,并将其包含在$ this-&gt; Html-&gt;脚本()或缓冲区中并执行它。它更加可靠,可预测和易于管理。