2017-01-27 1 views
1

У меня есть веб-сайт.jsTree contextmenu не отображается на дереве-узле при щелчке юаня

У этого есть две страницы.

pg1 только для меня, чтобы работать с jsTree в простой среде. Здесь все прекрасно.

pg2 - производственное приложение. Вот где я столкнулся с этой проблемой.

Тот же код находится на обеих страницах, и jsTree отлично работает для всех других целей. Я построил дерево с нуля и теперь, что добавить только один пункт контекстного меню.

Разница # 1 - это моя производственная страница jsTree размещена в jqWidget jqxWindow.

Обе страницы размещены на python-web2py, но демонстрационная страница действительно не является страницей web2py. Демонстрация действительно проходит через контроллер web2py, но на странице находится прямой html/не включает фреймворк javascript web2py или объекты просмотра. И если я рассматриваю источник на демо-странице, это почти так, как я вижу в своем редакторе.

Все, что сказал, что я не знаю, что приведет вас к мнению, что jqxWidgets или web2py является корнем этой проблемы.

.

Это код, о котором идет речь, и он одинаковый на обеих страницах.

, 'contextmenu': { 
    'items': function (node) { 
     var tmp = $.jstree.defaults.contextmenu.items(); 
     delete tmp.rename; 
     delete tmp.remove; 
     delete tmp.ccp; 
     tmp.create.label = "New Folder"; 
     return tmp; 
    } 
} 
, 'plugins': ['contextmenu'] 

.

Когда я нажимаю на узлы jsTree на демо-странице, все в порядке.

Проблема заключается в том, что я нажимаю на узлы jsTree на производственной странице, ничего не происходит. Ничего. Контекстное меню не отображается/отображается в браузере. Это похоже на то, что jsTree не слышит щелчок юаня.

EDIT: Я просто осознал это тоже. В любом месте на странице клик RBM отображает стандартное контекстное меню браузеров .... За исключением на узлах jsTree. На узлах - ничего. Это, как правило, приводит меня к мысли, что это не имеет никакого отношения к jqWidgets или web2py.

Что может помешать jsTree представить контекстное меню? Могу ли я потерять элементы стиля? Есть ли какой-нибудь файл contextmenu.js, который не обрабатывается на рабочей странице?

Если вы думаете jqWidgets или web2py может быть корнем этого

  • а) как я могу идти о доказательстве точки &
  • б) Как я тренируюсь JavaScript, чтобы позволить RMB щелчка пропуска в jsTree?
+0

Вы видите ошибки в консоли? –

+0

Нет, к сожалению. Но поскольку вы спросили, что я решил попробовать это. Если я поставлю console.log («HELLO»); в пунктах: функциональная консоль регистрирует «HELLO», когда я нажимаю RMB. Итак, теперь мы знаем, что юаней запускается в jsTree. Это хороший шаг вперед. – Steve

+0

Контекстное меню будет элементом 'ul' с классом' vakata-context jstree-contextmenu jstree-default-contextmenu'. Он добавляется, когда вы щелкните правой кнопкой мыши на узле и затем удалите его. Попробуйте щелкнуть правой кнопкой мыши, а затем выполнить поиск этого элемента на вкладке DOM (вкладка «Элементы»). Может быть, он там, просто не видно. –

ответ

1

Поскольку вы успешно получили тестовое сообщение в консоли, я предполагаю, что контекстное меню есть, только не видно.

В контекстном меню будет элемент ul с классом vakata-context jstree-contextmenu jstree-default-contextmenu. Он добавляется, когда вы щелкните правой кнопкой мыши на узле, а затем удалите его, когда вы нажимаете на него.Попробуйте щелкнуть его правой кнопкой мыши, а затем выполнить поиск этого элемента меню на вкладке DOM (вкладка «Элементы»).

+0

Любые советы о том, как я могу поднять z-индекс этого «узла» на юаня? Как бы вы это сделали? – Steve

+0

Можете ли вы назначить более высокий z-индекс в классе контекстного меню? Как '.vakata-context {z-index: 10000; } '? –

+0

Вы имеете в виду, редактируя jsTress's styles.css? Я сделал это, и это действительно работает. Но я забочусь о содержании. Обновление jsTree, развертываемое в приложении, перезапишет/заменит это изменение на css. Я рассматриваю, как я могу добавить z-индекс в dymanically. Возможно, в объектах jsTree; контекстное меню; item: f() {<здесь some how>} – Steve

Смежные вопросы