Вы должны указать тип своей страницы, в противном случае Zend_Navigation
выдаст исключение. В таких случаях, как ваш, я всегда использую Zend_Navigation_Page_Uri
в качестве типа страницы и задаю его uri для #
. Чтобы применить это к вашему конфигурационному файлу, вы можете сделать это
<bills>
<label>Bills</label>
<uri>#</uri>
<pages>
<create-bill>
<label>Create New Bill</label>
<controller>bill</controller>
<action>create</action>
<module>global</module>
</create-bill>
</pages>
</bills>
Сгенерированная разметка по-прежнему содержит ссылку, но нигде не будет указывать.
Более того, поскольку вам нужно привязать к нему некоторый javascript для отображения меню, вы можете даже отключить его, вернув false
в обработчике кликов для этих ссылок.
Чтобы прикрепить обратные вызовы javascript (или некоторые CSS) к ссылкам такого типа, вам может быть полезно прикрепить класс к этим ссылкам. В том же файле конфигурации вы можете с этим кодом
<bills>
<label>Bills</label>
<uri>#</uri>
<class>fakelink</class>
<pages>
<create-bill>
<label>Create New Bill</label>
<controller>bill</controller>
<action>create</action>
<module>global</module>
</create-bill>
</pages>
</bills>
В этом случае сгенерированная разметка будет
<li class="fakelink>
<a href="#">Bills</a>
<ul>submenu here</ul>
</li>
и вы можете легко выбирать ссылки такого рода с помощью библиотеки JavaScript. Например, с помощью jQuery вы можете сделать это:
$(function() { $('.fakelinks > a').click(function () { return false; }); });