Tridion 当仪表板按钮被禁用时,我们可以显示不同的工具提示吗?

Tridion 当仪表板按钮被禁用时,我们可以显示不同的工具提示吗?,tridion,tridion-2011,Tridion,Tridion 2011,我专门为Tridion 2011使用PowerTools扩展,但这适用于仪表板上带有按钮的任何Anguilla扩展 我们可以设置,将鼠标悬停在工具提示上。用户将鼠标悬停在GUI扩展按钮上以查看此文本。请参见中“计数项目”扩展的示例 PT_计数项目 清点物品 假的 电动工具.命令 当扩展未启用时,我们有一个请求 我可以在Chrome控制台的按钮中看到“计数项目”文本 清点物品 同样在控制台中,我可以选择文本周围的div,并使用:$(“div#CountItems>div.text”)。我不

我专门为Tridion 2011使用PowerTools扩展,但这适用于仪表板上带有按钮的任何Anguilla扩展

我们可以设置
,将鼠标悬停在工具提示上。用户将鼠标悬停在GUI扩展按钮上以查看此文本。请参见中“计数项目”扩展的示例


PT_计数项目
清点物品
假的
电动工具.命令
当扩展未启用时,我们有一个请求

我可以在Chrome控制台的按钮中看到“计数项目”文本


清点物品
同样在控制台中,我可以选择文本周围的div,并使用:
$(“div#CountItems>div.text”)
。我不知道如何得到文本

问题: 当GUI按钮处于非活动状态时,如何/应该更改工具提示文本?

我可能也需要澄清这些问题

  • 在安圭拉(或PowerTools)中,
    $()
    jQuery()
    相同吗?我尝试了
    $(“div#CountItems>div.text”)。text()
    和get
    对象没有方法“text”
  • 当按钮被禁用时,是否有首选或可配置的方法来设置工具提示?我确信我们可以在DOM中找到一个元素,但我可能遗漏了一些东西
最后

  • {NameSpace}.Commands.{ExtensionName}.prototype.isValidSelection=function(selection)
    {}
    通常是更改此工具提示的正确位置吗
  • 对于上下文菜单,我认为我们可以使用
美元()是否与jQuery()相同? 不需要。TridionUI包含jQuery库的一个子集:

因此,选择一组元素的所有常用jQuery技巧都会起作用,但是其他jQuery方法(AJAX工具、事件处理程序、实用程序方法)将不可用

请注意,如果希望在扩展中使用完整的jQuery,可以通过将其包含在所谓的jQuery中来实现

我可以设置禁用按钮时的工具提示吗? 据我所知,TridionGUI中的按钮只有一个工具提示,并且每个按钮状态都会显示该工具提示。当GUI即将显示工具提示时,也没有可以挂接到以计算工具提示的
ontooltip
事件

按钮确实有一个公共的
设置工具提示
,因此一旦检测到某种情况,您可以自己更改它。如果您在安圭拉源代码中搜索
setTooltip
,您将发现一些如何使用它的示例(在欢迎屏幕、向页面添加组件演示时以及在BluePrint viewer中)

isValidSelection是更改此工具提示的正确位置吗? 请尝试将其改为“哪个状态导致哪个工具提示?我是否可以检测到状态更改并在该时间设置正确的工具提示?”而不是询问“显示时是否可以更改工具提示?”

如果工具/命令仅在选择特定类型的项目时启用,则应检测该条件,然后在此时设置工具提示。然后,当GUI需要向您显示工具提示时,您无需执行任何操作


当然,这只会把问题推到其他地方:如何检测这种或那种情况。但您会发现,查找此类“应用程序状态更改”的事件通常比查找“ontooltip”的事件更容易。

您可以扩展现有命令并调用其“\u isAvailable”或“\u isEnabled”方法,检查它们是否返回false,然后更改工具提示?谢谢,根据@Nuno annd@Frank的反馈,我打算用
$controls.getControl($(“#CountItems”),“Tridion.controls.Button”).setTooltip(“Count Item is…”)设置工具提示
PowerTools.Commands.CountItems.prototype.isValidSelection=function(selection){}
@Frank还提到了离线创建事件侦听器的选项,类似于
$evt.addEventListener(“onitemselected”,function(selected){PowerTools.Button1.setTooltip(…);PowerTools.Command1.isItEnabled=…;})。下一步我得试试这个。