Nano Hash - криптовалюты, майнинг, программирование

Невозможно выполнить событие onItemClick панели инструментов XPages, когда basicLeafNode содержит событие onClick

У меня есть панель инструментов с двумя базовыми узлами листьев, в которых мне нужно вызывать некоторые CSJS при нажатии на них. Для этого я помещаю CSJS в событие onClick для basicLeafNode, но когда я это делаю, независимо от того, возвращаю ли я true, false или не возвращаю вообще, обработчик событий для event="onItemClick" не выполняется. Если я удаляю CSJS в событии onClick, тогда выполняется onItemClick. Любые идеи о том, что я делаю неправильно здесь?

<xe:toolbar>
    <xe:this.treeNodes>
        <xe:basicLeafNode label="Back" submitValue="Back"></xe:basicLeafNode>
        <xe:basicLeafNode label="Save &amp; Back" submitValue="SaveAndBack" loaded="${javascript:document1.isEditable()}" onClick="console.log('save and back clicked');"></xe:basicLeafNode>
        <xe:basicLeafNode label="Edit" submitValue="Edit" loaded="${javascript:!(document1.isEditable())}"></xe:basicLeafNode>
        <xe:basicLeafNode label="Save" submitValue="Save" loaded="${javascript:document1.isEditable()}" onClick="console.log('save clicked'); return true;"></xe:basicLeafNode>
        <xe:basicLeafNode label="Delete"></xe:basicLeafNode>
    </xe:this.treeNodes>
    <xp:eventHandler event="onItemClick" submit="true" refreshMode="partial" refreshId="dc" disableValidators="#{javascript:context.getSubmittedValue() == 'Back'}">
        <xe:this.action>
            <![CDATA[#{javascript:
            vendor.runAction(context.getSubmittedValue(), document1);
        }]]></xe:this.action>
    </xp:eventHandler>
</xe:toolbar>
16.06.2016

Ответы:


1

Событие onClick пользователя basicLeafNode перезаписывает событие onItemClick пользователя toolbar.

Это видно в отображаемом исходном коде страницы.

Просто измените ситуацию: добавьте действия на стороне клиента в событие onItemClick toolbar.

Вы можете получить щелкнутую метку с помощью

        var node = thisEvent.target.parentNode;
        var label = node.getElementsByClassName('dijitButtonText')[0].innerHTML;

и добавьте свой код в зависимости от нажатой метки.

Вот рабочий пример XPage:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xe:toolbar>
        <xe:this.treeNodes>
            <xe:basicLeafNode
                label="first"
                submitValue="first">
            </xe:basicLeafNode>
            <xe:basicLeafNode
                label="second"
                submitValue="second">
            </xe:basicLeafNode>
        </xe:this.treeNodes>
        <xp:eventHandler
            event="onItemClick"
            submit="true"
            refreshMode="complete">
            <xe:this.script><![CDATA[
                var node = thisEvent.target.parentNode;
                var label = node.getElementsByClassName('dijitButtonText')[0].innerHTML;
                alert('action for: ' + label);
                return true;
            ]]></xe:this.script>
            <xe:this.action><![CDATA[#{javascript:
                    print(context.getSubmittedValue());
            }]]></xe:this.action>
        </xp:eventHandler>
    </xe:toolbar>
</xp:view>
17.06.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..