2012-07-05 2 views
0

Я пытаюсь получить JQuery Sortable, работая над моим приложением Zend Framework, но только с ограниченным успехом. Я использую библиотеку ZendX для большей части функциональных возможностей JQuery, которые мне нужны, например, datepicker, и те отлично работают. Я просто не могу получить сортировку, которая не поддерживается в библиотеке ZendX.Zend Framework Jquery Sortable

Что касается кода. В моем загрузчике я определил вспомогательный путь для Jquery и т.д., как в useual:

protected function _initViewHelpers() 
    { 
     $view = new Zend_View();   
     $view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); 
     $view->jQuery()->setLocalPath('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js') 
         ->setUiLocalPath('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js') 
         ->addStylesheet('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/smoothness/jquery-ui.css'); 
     $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); 
     $viewRenderer->setView($view); 
     Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 
    } 

Я затем активировать JQuery в макете с помощью echo $this->jQuery()->enable();

Теперь это работает все нормально, то Datepicker работает и показывает дизайн Гладкость по назначению и т.д.

Теперь я реализовать небольшой список с простой сортировки сценария следующим образом в моем index.phtml:

<!DOCTYPE html> 
<html> 
<head> 

    <script> 
    $(document).ready(function() { 
    $("#sortable").sortable(); 
    }); 
    </script> 
</head> 
<body style="font-size:62.5%;"> 

<ul id="sortable"> 
<li>Item 1</li> 
<li>Item 2</li> 
<li>Item 3</li> 
<li>Item 4</li> 
<li>Item 5</li> 
</ul> 

</body> 
</html> 

Единственный способ я могу получить эту работу, чтобы добавить линии

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script> 

к index.phtml. Это для меня выглядит так же смешно, как и получается. в bootstrap я уже добавляю этот скрипт, так зачем мне это делать снова, чтобы получить сортировку для работы?

У кого-нибудь есть решение моей проблемы?

Любые советы будут оценены :)

+0

Не могли бы вы, пожалуйста, оцените мой ответ, как это прекрасно удовлетворил ваши требования –

ответ

1

Не мог бы вы, пожалуйста, попробуйте ниже код подхода: -

protected function _initView() 
{ 
    $view = new Zend_View(); 
    $view->doctype('XHTML1_STRICT'); 
    $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8'); 
    $view->headTitle()->setSeparator(' - '); 
    $view->headTitle('IMR - BI System'); 
    $view->env = APPLICATION_ENV; 
    $view->baseUrl = Zend_Registry::get('config')->root_path; 

    $view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper"); 
    $view->jQuery()->addStylesheet('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/themes/smoothness/jquery-ui.css'); 
    $view->jQuery()->setLocalPath('http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'); 
    $view->jQuery()->setUiLocalPath('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js'); 
    $view->jQuery()->enable(); 
    $view->jQuery()->uiEnable(); 
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); 
    $viewRenderer->setView($view); 
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer); 

    return $view; 
} 

Надеется, что это поможет :)

+0

Ну, это был один из тех моментов, когда я отлично смотрел на лицо. Это был 'JQuery-> uiEnable();' что я отсутствовал. Большое спасибо! Я задаюсь вопросом о цели строки '$ view-> JQuery() -> enable();'. Это указывало бы на то, чтобы включить jquery в представлении, однако, когда я его использую и удаляю строку в своем макете, JQuery перестает работать полностью. –

+0

Функция enable() активирует библиотеку ядра jQuery. –