如何从一个选择中向所有选择中的所有选项添加功能?

时间:2018-07-27 10:26:16

标签: jquery

我知道标题并不是在说我想做什么,这可能会造成混淆或描述性不足,因此,如果有人知道用更好的方法来解释标题,那就说出来吧!

我有这种情况:

<div id="selectable2" class="dd-container">
  <div class="dd-select">
    <input class="dd-selected-value" type="hidden" name="information2" value="something">
    <a class="dd-selected">
      SOME TEXT
    </a>
  </div>
  <ul class="dd-options dd-click-off-close">
    <li>
      **<a class="dd-option dd-option-selected">**
          <input class="dd-option-value" type="hidden" value="something"> 
          SOME TEXT
      </a>
   </li>
  </ul> 
</div>

在这不是我生成的代码中,我有一个选择,前一个程序员检查一些数据,当选择一个选项时,它会激活如下功能:

$('.dd-option').click(CheckFunction);

在单击此标签(在select内)时激活:

**<a class="dd-option dd-option-selected">**

所以我要做的就是复制那个选择,我已经做了,但是我不希望它像其他选择一样激活该功能。

我重复了这样的选择:

var $options = $("#selectable1 > option").clone();

$('#selectable2').append($options);

所以我和另一个具有相同类的内容具有相同的内容,所以在jquery中是否有办法让我要向所有函数添加该函数,但选择ID为“ selectable2”的函数除外?

类似这样的东西:

$(".dd-option:not('#selectable2')").click(CheckFunction);

但是这是不可能的,因为select是其ID而不是标签<a>的ID,标签**<a class="dd-option dd-option-selected">** 是该类选择并添加了单击功能的标签:

<a>

如果不可能,如何在函数中一次检查单击的标签CheckFunction (event) { if(event.parent.id != "selectable2"){ //function code } } 的父ID是否为“ selectable2”,所以我知道我不希望该代码在从以下位置执行时执行选择。

类似这样的东西:

db.hello.aggregate([

  {$match:{"salary": null}},

  {$group: {  
           "$and":[

                  {_id : {$nin : ["salary","worker_id"]}},
                  {_id: '$$ROOT'}
                  ], 
            count: {$sum: 1}}}, 

  { $sort:{"count":1}},

  { $limit : 50 } 

  ],

  {allowDiskUse: true}
)

我希望自己能很好地解释自己。有任何问题,请问我!

1 个答案:

答案 0 :(得分:1)

尝试一下:克隆后,您可以在选项中添加一个类,并从点击处理程序中过滤这些元素

var $options = $("#selectable1 > option").clone();
$options.addClass('NoClick');
$('#selectable2').append($options);

jQuery点击处理程序

$(document).on("click",".dd-option:not(.NoClick)",CheckFunction);