小编Asi*_*Rex的帖子

如何在父元素Jquery中删除某个类的元素

我有一个包含类别按钮的范围,单击时,子范围按钮将添加到父范围内.它的目的是当再次单击类别按钮时,如果已经填充了子类别,它应该删除它们,如下所示:

$('.catBtns').on('click', function() {
    var catId = parseInt(this.id);
    if ($('#' + catId).parent().find('button').length <= 1) {
        $.each(data.category[catId].subcategory, function(i) {
            $('<button class="subcatBtns" id="'
              + data.category[catId].subcategory[i].subcategoryId + '">'
              + data.category[catId].subcategory[i].subcategoryName.split('<--name-->')[currentLang]
              + '</button>').appendTo($('#' + catId).parent());
            i++;
        });
    } else {
        $('#' + catId).parent().remove('.subcatBtns');
    }
});
Run Code Online (Sandbox Code Playgroud)

到目前为止没有运气.为什么我无法从类别按钮的父元素中删除类subcatBtns的所有元素?remove()方法的jquery API有这个例子:

$( "div" ).remove( ".hello" );
Run Code Online (Sandbox Code Playgroud)

是因为之前的parent()方法吗?我应该只是在跨度中添加特定的ID而不是通过孩子的ID来选择它吗?HTML非常简单,这里:

   <nav id="nav">
        <img src="img/resources/logo.png" alt="logo" id="logoMenu">
        <span id="span0" class="catSpan">
            <button class="catBtns" id="0">EN-0</button>
            <button class="subcatBtns" id="000">EN-000</button>
            <button class="subcatBtns" id="001">EN-001</button>
        </span>
        <span id="span1" class="catSpan">
            <button class="catBtns" id="1">EN-1</button>
        </span>
        <span id="span2" class="catSpan">
            <button class="catBtns" …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

3
推荐指数
1
解决办法
5274
查看次数

计算页面重新加载

我认为这是不可能的,但我会问我们的巫师社区,也许有人有窍门。

当有人重新加载页面两次以上时,客户端想要在我的 js 注入平台上触发一个事件。他拒绝在 onbeforeonload 的 cookie 上设置一个值,或者在服务器端有一些可以计数的东西。

有人知道在客户端计算页面重新加载的方法吗?

javascript

3
推荐指数
1
解决办法
3930
查看次数

JSON Schema Array 必须包含特定字符串

关于这个主题有几个问题,但它们似乎都没有解决这个特定问题,关于 JSON Schema 的文档也没有,所以可能无法完成。

问题是我有一个数组,可以将 4 个字符串中的任何一个作为值,使用此模式很容易实现:

...
 "attributes": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [   
          "controls",
          "autoplay",
          "muted",
          "loop"
        ]
      },
      "additionalItems": false
    }
...
Run Code Online (Sandbox Code Playgroud)

所以数组中的值只能是这四个值之一。尽管如此,“控件”必须始终是数组的一部分,而其他三个是可选的。如果它是一个对象数组,我们可以将其设为必需,但我不确定如何检查具有特定值的数组。

谢谢你的帮助!

arrays validation json jsonschema

3
推荐指数
1
解决办法
2533
查看次数

fragment.isVisible()始终返回false

我正在尝试设置一个覆盖片段,该片段会在触摸按钮时显示,而在再次单击按钮时消失。我不是在使用支持库片段,而是常规类。因此,当您单击按钮以附加片段时,它会执行以下操作,代码如下:

boolean hasNativeFrag = false;

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.native_chat) {
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        NativeFragment nativeFragment = new NativeFragment();

        //Add/remove fragment
        if (!hasNativeFrag) {
            getFragmentManager().executePendingTransactions();
            fragmentTransaction.add(R.id.FragmentContainer, nativeFragment);

            hasNativeFrag = true;
        }

        if(nativeFragment.isVisible()){
            fragmentTransaction.hide(nativeFragment);
        }
        else {
            fragmentTransaction.show(nativeFragment);
        }
        fragmentTransaction.commit();

    }

    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我再次单击该按钮时,我希望if条件能够运行,因为它现在可见,并且应该将其隐藏。尽管如此,nativeFragment.isVisible()始终返回false。我究竟做错了什么?

谢谢一大堆

更新1:无法使其与答案提出的任何方法一起使用,但是一个简单的布尔值至少会在它们之间进行切换,如下所示:

boolean hasNativeFrag = false;
boolean isNativeFragShown = false;

@Override
public boolean onOptionsItemSelected(MenuItem …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments

1
推荐指数
1
解决办法
1263
查看次数