concrete5(5.7)页面选择器事件 - 在仪表板中

时间:2016-04-22 10:53:42

标签: concrete5 concrete5-5.7

在另一个SO问题中,回答了块(Page selector (block development))中的用法。但是,我们如何在仪表板中应用此功能?

变量“Concrete”和“ConcreteEvent”似乎在管理员中未定义。解决这个问题的最佳方法是什么?

示例代码(使用5.7.x):

Concrete.event.bind('ConcreteSitemap', function(e, instance) {
    Concrete.event.bind('SitemapSelectPage', function(e, data) {
        if (data.instance == instance) {
            Concrete.event.unbind(e);
            alert("You've selected a page! " + data.cID);
        }
    });
});

1 个答案:

答案 0 :(得分:1)

看起来Concrete.event总是在仪表板页面中加载。如果您担心加载顺序,您可以选择一些选项。

  1. 创建资产组并将事件js资产放在首位。如果您再包含而不仅仅包含资产具体应该管理首先加载活动。
  2. 使用像jquery的$(function() { ... })这样的onload事件。这会比你预期的要晚一点,但它会在加载事件后发生。
  3. Set the position of the asset to \Concrete\Core\Asset\Asset::ASSET_POSITION_FOOTER这会导致您的JS被包含在页脚而不是头部,从而允许事件JS始终首先加载
  4. 希望有帮助你