【问题标题】:How to find a div has a widget in Jquery?如何在 Jquery 中找到一个 div 有一个小部件?
【发布时间】:2012-01-27 13:03:37
【问题描述】:

如何检查 div 是否有小部件?例如。

如果我们向 div 添加一个类,我们可以检查像这样使用.hasClass,有没有办法找到小部件是否存在?

【问题讨论】:

  • 什么小部件? jQuery UI 小部件?
  • 您不能至少提供一些代码,以便我们了解您的自定义情况吗?什么样的小部件?它有什么作用?它是否设置了任何可以检查/测试的属性或属性?

标签: javascript jquery jquery-ui jquery-widgets


【解决方案1】:

你的问题很难理解。由于您没有提供有关自定义小部件的代码或解释,因此也很难回答。根据您有限的信息,这是我能做的最好的……

为您的小部件分配一个 CSS 类(例如 clsWidget)。如果小部件始终具有 clsWidget 类,您可以像这样检查它的存在:

if($("[DivThatMightContainWidgetSelector]").find(".clsWidget").length > 0) {
    //Div contains widget
}
else {
    //Div does not contain widget
}

【讨论】:

    【解决方案2】:

    如果您想知道 div 当前是否用作 jQuery UI 小部件(这可能是您要问的,虽然我不完全确定),您可以检查 div 是否具有“ui-widget " 类。

    $("yourDivSelector").hasClass("ui-widget")
    

    每个 jQuery UI 小部件都有这个类,我相信大多数实现良好的第三方小部件也使用这个类(jQuery UI 的 CSS 框架的一部分)。

    【讨论】:

    • 抱歉,刚刚看到有关问题的评论是关于(我猜是特定的)自定义小部件,而不仅仅是任何小部件。
    【解决方案3】:

    检查小部件是否已分配给标签的标准方法是...

    if ( !($("#myInput").data( "ui-fooWidget" ) )
       < widgetNotFound >
    else
       < widgetFound >
    

    如果您想在某些设备上分配不同的小部件,或者在调用小部件方法之前检查小部件是否已初始化等,这是一个有用的例程。

    所有 ui-widget 都会将根 widget 对象存储在分配给标签的数据对象中。这也是一个用于访问私有小部件的方法。

    【讨论】:

      猜你喜欢
      • 2022-08-03
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2019-09-15
      • 1970-01-01
      • 2018-07-26
      • 2019-01-30
      相关资源
      最近更新 更多