如何切换附加的div

时间:2015-12-03 18:39:41

标签: jquery

我正在开展一个用户可以使用表情符号的通信项目。到目前为止,我执行它的方式是创建一个部分HTML文档,并在单击时将其附加到其中。

public <T extends Base> void method() throws Exception {
    Wrapper<T> o = (Wrapper<T>) t.getTransferData(SelectionList.flavour);
    int index = location.getIndex();
    if(location.isInsert())
         ((DefaultListModel<Wrapper<T>>)list.getModel()).add(index, o);
}

现在基本上我想弄清楚的是两件事:

  • 如何删除它(我的猜测是更改点击切换。问题是我附加了HTML
  • 我怎样才能做到这一点,当你点击除div之外的任何东西时,它就会消失

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

<强> 1。如何删除它(我的猜测是将点击更改为切换。问题是我附加了HTML:

您可以将服务器端生成的html分配给js变量并使用特定的选择器(可以是使其唯一的任何属性)并使用它来添加/删除元素。

var dynamicHTML = "<span class='hello'>Hello</span>"; 

$('.chatbox-emoji-trigger').on("click",function() {
  if($(this).find('.hello').length === 0) // checks if the element exists
    $(this).append(dynamicHTML);  // if it doesn't , append it.
  else
     $(this).find('.hello').remove(); // else remove it 
});

<强> 2。我怎样才能做到这一点,当你点击除div之外的任何东西时,它就消失了

为此,您可以将单击处理程序委派给文档,并使用event属性来确定它是否是从特定元素触发的。

$(document).on("click",function(e) {
     if(e.target.id != "div1") // checks if the click was triggered outside the div
       $(this).find('.hello').hide(); // if so, hide it.
});

示例:http://jsfiddle.net/8hvynxjx/1/