脚本中隐藏的div如何分配点击悬停

时间:2017-02-05 17:54:09

标签: javascript jquery html css dom

我有一个被遮挡的脚本(即无法从脚本中读取div元素)。在检查DOM元素中渲染时,我可以找到我想要为其分配函数的div。但是我不能这样做。我是否需要脚本中的div id(即模糊的div id)?

我想点击功能并计划如下:

<script>
$(document).ready(function () {

   $('.contentoverlay').on('mouseover', function() {
     click();
   });

});
</script>

脚本本身很长,所以我不会在这里粘贴它。

总的来说,我想知道:

  1. 我是否需要找到模糊脚本的div并将我的点击功能分配给它
  2. 上述功能是否正确
  3. 如果有多个叠加层,我必须将上面的功能分配给每个叠加层(叠加层本身是鼠标指针无,所以它们确实传递了点击次数,但如果我不这样做,上面的功能会被传递下来甚至被阻止不将它分配给所有叠加层??

1 个答案:

答案 0 :(得分:0)

示例:http://output.jsbin.com/joxetuc

首先,我想先解释一下我的评论,然后我会在最后回答你的3个问题

A)说实话,我的英语不好,我不知道什么是“模糊”的意思(即使我谷歌这个),但我认为这意味着新创建的DOM(动态创建元素)是由javascript。像这样: 启动了DOM <table></table>

新DOM <tr><td>texttt</td></tr>

结果<table><tr><td>texttt</td></tr></table>

  

如果这不正确,我的下面的答案将是错误的。

B)所以,在jsbin示例中,我只给你div#container。然后在单击创建按钮时在div#container中创建新DOM。

C)我创建了1个函数来处理是否单击了新的DOM,这将把$(元素).text()写入div.log

//function to execute if element clicked
       $('.container').on('click', '#newid', function(i,e){
         var txt = $(this).text();
         $('.log').append(txt+' ');
       });

D)我在点击功能中也使用相同功能处理事件鼠标悬停。因为我很懒,我只写$(this).click(); $(this)是指div#newid

//if mouseover, perform click
       $('.container').on('mouseover', '#newid', function(i,e){
         $(this).click();
       });

所以,在jsbin中,我将向您展示如何处理鼠标悬停新DOM以执行click()函数。

现在,你的问题

1)我是否需要找到模糊脚本的div并将其点击功能分配给它?

你不需要它,只要你知道如何找到那个元素。

2)上述功能是否正确?

这不是正确的功能。正确的1是:

parentElemenentOfNewDOM.on('mouseover', newDOMElement, function() {
$(this).click(); //this will perform your default click function that you give before
});

3)如果有多个叠加层,我必须将上面的功能分配给每个叠加层(叠加层本身是鼠标指针无,所以它们确实传递了点击次数,但上面的函数会传递下来或如果我不将其分配给所有叠加层,甚至会被阻止?

你不需要分配相同的功能来处理多个元素(叠加)。您需要的是处理所有新多元素的正确脚本。我的脚本将处理所有新元素。

如果您想了解其他内容,请参阅此演示http://output.jsbin.com/vukudu