2

我有一个 div,我在其中运行 for 循环。这是根据字段中的行数创建以下 div。

<div class="parent">
                <p style=" font-family: Times New Roman;color:#a0a0a0; ">
                        Content 1 goes here.........
                </p>
                <div class="child">
                        <span> <a class="likebtn">Like</a> </span>1 people like this     
                </div>
            <hr/>
 </div> 

上面显示的 div 是在一个 for-each 循环中,即创建多个类似这样的 div,上面有不同的内容。

现在我正在尝试调用我的 jquery 函数,如果用户单击驻留在 div 中的任何类似按钮。我尝试了以下函数,但我的函数没有被调用。请帮助我,为什么关于这个问题。

<script type="text/javascript">         
        $('.parent .child .likebtn').click(function(e)
        { 
            alert("function called");
        });
</script>

有一件事,div是动态创建的,如果我在for-each循环之后编写上面的javascript代码,那么我的函数就会被调用。在 Controller 中编写 javascript 函数不是一个好习惯。我正在使用 COdeigniter 框架。请帮助我,我必须在头部或身体中指定此功能

4

2 回答 2

5

如果 div 是动态创建的,请像这样调用它们

$(document).on('click', '.parent .child .likebtn', function(e)
    { 
        alert("function called");
    });
于 2013-05-10T14:48:22.740 回答
1

将您的函数包装在附件中,以确保它在您的 DOM 完全加载后执行,如下所示:

$(function() {
    $('.parent .child .likebtn').click(function(e) { 
        alert("function called");
    });
});

编辑:您是从 AJAX 加载此内容吗?在这种情况下,您需要使用 .on() 函数来确保新的 dom 元素获取事件,语法如下: $(document).on(events, selector, data, handler); -> api.jquery.com/on

编辑 2:与 tymeJV 相同的答案

于 2013-05-10T14:46:43.440 回答