元素点击事件实际上不起作用

时间:2014-02-28 03:41:11

标签: javascript jquery

好的,我似乎没有得到它。我现在要做的就是在单击特定元素 - #target时将文本记录在网页上。是否有任何明显可能导致以下情况无法发挥作用?

<script type="text/javascript">
    jQuery("#target").click(function(){
    var selectorText = jQuery("#target").text();
    console.log(selectorText);
});

</script>
  • 我最初把它装在文件准备就绪但丢弃了 因为我实际上并没有尝试点击#target直到该页面 满载。
  • jQuery已成功加载。
  • 控制台没有错误。
  • #target正确加载到里面 在脚本到达之前的DOM(接近结束时) 文件)。

2 个答案:

答案 0 :(得分:3)

jQuery("#target")在加载DOM之前,#target不存在,因此jQuery无法将监听器附加到它。无论您是否尝试点击它都无关紧要。

如果你真的不想把它放在$()中,试试这个:

$(document).on("click", "#target", function(){
    //do your thing
});

答案 1 :(得分:3)

也许您的元素已动态创建,请尝试在此使用event delegation

jQuery(document).on('click', '#target', (function(){
    var selectorText = $(this).text();
    console.log(selectorText);
});

此外,请确保自#target唯一后才添加id一次。如果您打算多次创建它,那么您需要使用类来代替。

顺便说一句,对于委托事件,您应该将它们绑定到最近的非动态父级而不是document