#javascript #cakephp
#javascript #cakephp
Вопрос:
Это пример кода пользовательского интерфейса jQuery:
<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.
Не могли бы вы привести мне пример? Я пытаюсь прочитать руководство по гайкам и болтам и CakePHP, но я не понимаю.
Спасибо.
Комментарии:
1. CakePHP — это PHPm, а не JavaScript. Что вы подразумеваете под «форматом cakephp»?
2. извините за непонятный вопрос, в cakephp напишите javascript в примере $this-> Js-> get(‘#my-list’); $this-> Js-> sortable(array( ‘distance’ => 5, ‘containment’ => ‘parent’, ‘start’ => ‘OnStart’, ‘complete’ => ‘onStop’, ‘sort’ => ‘onSort’, ‘wrapCallbacks’ => false ));
3. загрузите этот файл как js в любом действии, и он будет работать так же..
Ответ №1:
Не беспокойтесь.
Cake 1.3 JsHelper — это всего лишь помощник, предназначенный для абстрагирования от наиболее распространенного и повторяющегося кода — разбивки на страницы ajax, простой загрузки элементов, анимации, соответствующей элементам навигации, такого рода вещей. Библиотека в том виде, в каком она поставляется, универсальна для трех самых популярных библиотек javascript — jQuery, MooTools и Prototype (по умолчанию используется jQuery, и ее можно изменить в контроллере), поэтому разработчик может выбрать любой вариант, который ему больше нравится, использовать несколько библиотек и т.д. Поскольку абстракции охватывают только наиболее распространенное поведение, которое обычно предлагают библиотеки, есть довольно хороший шанс, что все остальное, что вы захотите использовать, также будет соответствовать без особых усилий.
Для того, что он делает, это довольно блестяще — это в основном СУХОЙ вызов и избавляет от рутинного поведения. Однако это уровень абстракции.Это не заменяет сценарии на стороне клиента, особенно для чего-либо отдаленно сложного. Я бы посоветовал не тратить много времени на создание пользовательской функциональности, поскольку любые проблемы, возникающие в сгенерированном коде, гораздо сложнее отлаживать, не говоря уже об исправлении; все, что делает Cake, — это пишет код для включения в разметку в любом случае.
Просто напишите исходный код на стороне клиента и включите его в свой $this-> Html-> scripts() или buffer и выполните его. Это намного надежнее, предсказуемее и управляемее.