Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery-Click()不';单击a<;李>;在一个<;ul>;_Jquery - Fatal编程技术网

jQuery-Click()不';单击a<;李>;在一个<;ul>;

jQuery-Click()不';单击a<;李>;在一个<;ul>;,jquery,Jquery,尝试单击动态生成的列表中的项目,但是$.click()函数无法启动 列表的HTML: <div> <ul id="site_list"> </ul> </div> 尝试“打开”而不是“单击” $('li').on('click', function(){ $(this).toggleClass('site_selected') } ); 动态添加li时,需要将事件处理程序委托给li 注 的委托事件结构如下所示: $(container

尝试单击动态生成的列表中的项目,但是
$.click()
函数无法启动

列表的HTML:

<div>
    <ul id="site_list"> </ul>
</div>

尝试“打开”而不是“单击”

$('li').on('click', function(){ $(this).toggleClass('site_selected') } );
动态添加
li
时,需要将事件处理程序委托给
li


的委托事件结构如下所示:

$(container).on(eventName, target, handlerFunction)

这里
容器
指向一个
静态元素
,该元素包含
目标
元素,在页面加载时属于DOM。

上面的代码看起来不错。我刚刚处理了同样的问题,代码悖论一针见血。输入是动态加载的,因此如果我们在$(document).ready(function(){…})存在之前将该代码放在$(document).ready(function(){…})中,它将无法工作

只要把这个密码

    $('li').click(function(){
        $(this).toggleClass("site_selected");
    });
在同一个函数中动态生成列表后(不是在doc ready函数中)。如果在初始化元素之前创建了on-click函数,则不能使用

采用另一种方式可能有好处:

    $('#site_list').on('click', 'li', function(){

但是,它对我来说非常有用…

wahoo!就这样了…谢谢!还有一个问题,那么:当我点击一个新的类时,我如何从列表中的每一个“li”中删除“site_selected”类?(所以一次只有一个“li”拥有该类?)你是我的超级英雄!思考这个问题时,我的头冒烟了。谢谢。阅读。这不会有帮助,因为.click()方法是精确显示所显示内容的快捷方式。(你可以用.on()解决问题,但不是那样。)
$(container).on(eventName, target, handlerFunction)
    $('li').click(function(){
        $(this).toggleClass("site_selected");
    });
    $('#site_list').on('click', 'li', function(){