在另一个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);
}
});
});
答案 0 :(得分:1)
看起来Concrete.event
总是在仪表板页面中加载。如果您担心加载顺序,您可以选择一些选项。
$(function() { ... })
这样的onload事件。这会比你预期的要晚一点,但它会在加载事件后发生。\Concrete\Core\Asset\Asset::ASSET_POSITION_FOOTER
。这会导致您的JS被包含在页脚而不是头部,从而允许事件JS始终首先加载希望有帮助你