当动态添加元素时,jquery不工作

时间:2014-08-05 22:19:08

标签: javascript jquery html

我知道jquery只适用于DOM上的元素,但我不知道如何解决我的问题,虽然我经常搜索。

这是我的代码:

<script>
    var actions = {{json_encode($actions) }};
    var options = "";
    for(var key in actions){
        if(key == ""){
            options = ('<option value>'+actions[""]+"</option>") + options ;
        }else{
            options = options+ ('<option value="'+key+'">'+actions[key]+"</option>");
        }
    }
    var select = '<select name="action_id[]">' + options + "</select>";
    var label = '<label>Action</label>';
    var span = '<span>{{$errors->first('action_id')}}</span>';
    var a = '<a  class="removeAction2" href="javascript:"></a>';
    var li = '<li>' + label+ select + span+ a +'</li>';

</script>

当我点击如下链接时,我使用了该代码:

 this$(".addAction2").on('click', function(){
        console.log(li);
        $(li).insertBefore(".lastLI");
    });

a有一个班级removeAction2

这是它的功能:

$(".addAction2").on('click', function(){
        console.log(li);
        $(li).insertBefore(".lastLI");
    });

此功能位于document.ready

该功能不起作用。换句话说,当我点击a时,没有任何反应。

虽然如果我在a中添加了html标签(非动态),则可以正常使用。

2 个答案:

答案 0 :(得分:2)

$(document).on('click', ".addAction2", function(){
        console.log(li);
        $(li).insertBefore(".lastLI");
    });

您需要委派活动。 http://learn.jquery.com/events/event-delegation/如上所述,我已委托给document

答案 1 :(得分:1)

试试这个 -

$(document).on("click", ".addAction2", function() {
    //your code here
});
相关问题