javascript - $(this).addClass 不工作

标签 javascript jquery html css web

在学习教程时,我发现样式表未应用于列表中单击的元素。可能的原因是什么?

如果将一些字符串添加到文本框然后单击按钮,则以下示例将以这种方式工作,一个新元素将添加到列表中。如果列表中的元素被点击,它应该被抚摸通过。

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#taskText').keydown(function (evt) {  
                if (evt.keyCode == 13) {
                    addTask(this, evt);
                }
            });

            $('#addTask').click(function (evt) {
                addTask(document.getElementById('taskText'), evt);
            });

            // following statements not working 

            $('#tasks li').live('click', function(evt) {
                $(this).addClass('done');

            });});

        function addTask(textBox, evt) {
            evt.preventDefault();
            var taskText = textBox.value;
            $('<li>').text(taskText).appendTo('#tasks'); 
            textBox.value = "";
        };
    </script>
    <style type="text/css">
        .done{
            text-decoration:line-through;
        }
    </style>
</head>
<body>
   <ul id="tasks">
   </ul>
    <input type="text" id="taskText" />
    <input type="submit" id="addTask"/>

</body>
</html>

最佳答案

live() function在 jQuery 1.7 中被删除并且在 jQuery 2.x 中根本不存在。

如果您查看浏览器的开发者控制台,您很可能会看到一条错误消息。

关于javascript - $(this).addClass 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34713294/

相关文章:

jquery - 为什么我无法聚焦使用 SlideDown() 显示的控件?

jquery - jQuery 中的 HTML 元素和 jQuery 中的 CSS 样式

javascript - 将变量和 DOM 元素分别传递给 jquery

html - 如何获得 CSS 类选择器来覆盖 input[readonly] 选择器?

javascript - 隐藏弹出框功能 恢复打开弹出框功能

javascript - Chrome 扩展启用内容脚本来访问 iframe

javascript - 没有标题的 Bootstrap 弹出窗口

javascript - &lt;script&gt; 标签在 jQuery 发布后不起作用

javascript - AJAX返回的元素无法被点击

javascript - HTML 地理定位服务强制接受所有时间