0

我一直在尝试让 JQuery Sortable 在我的 Zend Framework 应用程序上工作,但只取得了有限的成功。我一直在使用 ZendX 库来实现我需要的大部分 Jquery 功能,例如 datepicker,并且这些功能非常好。ZendX 库不支持我似乎无法排序。

至于代码。在我的引导程序中,我根据使用定义了 Jquery 等的辅助路径:

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);
    }

然后我使用在布局中激活 JQueryecho $this->jQuery()->enable();

现在一切正常,日期选择器正常工作,它显示了预期的平滑度设计等。

现在,我在 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。这对我来说看起来就像它得到的一样荒谬。在引导程序中我已经添加了这个脚本,那么为什么我必须再次这样做才能让排序工作?

有人碰巧有解决我的问题的方法吗?

任何建议将被认真考虑 :)

4

1 回答 1

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;
}

希望这会有所帮助:)

于 2012-07-05T08:19:00.230 回答