我有一个被遮盖的脚本(即无法从脚本中读取 div 元素)。在检查 DOM 元素中呈现后,我可以找到我想要为其分配函数的 div。但是我不能这样做。我是否需要脚本中的 div id(即模糊的 div id)?
我想分配点击功能并计划按如下方式进行:
<script>
$(document).ready(function () {
$('.contentoverlay').on('mouseover', function() {
click();
});
});
</script>
脚本本身很长,这里就不贴了。
总体上我想知道:
- 我是否需要找到模糊脚本的 div 并将我的点击功能分配给它
- 上面的函数是否正确
- 如果有多个叠加层,我是否必须将上面的功能分配给每个叠加层(叠加层本身没有鼠标指针,所以它们确实会传递点击,但如果我不这样做,上面的功能会被传递下来甚至被阻止吗? '将其分配给所有叠加层)?
最佳答案
示例:http://output.jsbin.com/joxetuc
首先,我想先解释一下我的评论,然后我会在最后回答你的三个问题
A) 老实说,我在这里的英语不好,我不知道“模糊”是什么意思(即使我用谷歌搜索这个),但我认为这意味着新的 DOM 是由 javascript 新创建的(动态创建的元素)。像这样:
启动 DOM <table></table>
新 DOM <tr><td>texttt</td></tr>
结果 <table><tr><td>texttt</td></tr></table>
if this not correct, my whole answer below will be wrong.
B) 因此,在 jsbin 示例中,我只给你 div#container。然后在单击创建 按钮时在 div#container 中创建新的 DOM。
C) 我创建了 1 个函数来处理是否单击了新的 DOM,这会将 $(element).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
关于javascript - 脚本中模糊的div如何分配悬停点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055337/