从php附加数据后按钮单击事件不起作用

时间:2012-06-30 04:48:04

标签: php jquery html events click

我正在使用javascript从PHP加载到一个div使用$ .get()到div。按钮单击事件工作正常。然后再次将同样的东西添加到具有不同id的不同div,但它不起作用。任何人都可以帮助我。我的代码就是这个

<style>
    .loadWindow {
        width:333px;
        height: 202px;
        padding: 5px 5px 0 5px;
        font: 12px Arial, Helvetica, sans-serif;
        border:double;
    }

    #loadWindow {
        display:none;
    }

<div id="main-box">
<div class="loadWindow" id="loadWindow"></div><button id="make">make</button>

我的javascript代码如下

$(function(){
    $('#make').click(function(){
        var id = $('.loadWindow').length;
        var aw = $('#loadWindow').clone().attr("id", "window"+id);

        //load data from php
        $.get("mydata.php", function(data) {
            aw.html(data);  
            $('#main-box').append(aw);
            aw.show();
        }, 'json');
    });
});

`

我的mydata.php代码在

之下
echo '<div><button id="closeBtn">Close</button></div><script>$("#closeBtn").click(function(){alert("Close button Clicked!");});</script>';

我希望单独(单独)为每个窗口单击事件工作并显示警报。在此代码中,单击事件根据窗口不起作用。我该怎么办?

2 个答案:

答案 0 :(得分:0)

工作演示 http://jsfiddle.net/QYEWs/13/

请使用.on API将一个或多个事件的事件处理函数附加到所选元素。

API:http://api.jquery.com/on/

Plz注意:你的追加会使DOM无效,因为你的id总是相同的,使它成为一个类

在DOM中动态添加html附加click事件

这应该有帮助,:)

像这样

将Attaché点击事件关闭按钮,如下所示:

$("#main-box").on("click",".closeBtn", function() {
    alert("Close button Clicked!");
});​


$(function(){
    $('#make').on('click', function(){
        var id = $('.loadWindow').length;
        var aw = $('#loadWindow').clone().attr("id", "window"+id);

        //load data from php
        $.get("mydata.php", function(data) {
            aw.html(data);  
            $('#main-box').append(aw);
            aw.show();
        }, 'json');
    });
});

答案 1 :(得分:0)

$(function(){
    $('#make').click(function(){
        var id = $('.loadWindow').length;
        var aw = $('#loadWindow').clone(true).attr("id", "window"+id);
        //load data from php
        $.get("mydata.php", function(data) {
            aw.html(data);  
            $('#main-box').append(aw);
            aw.show();
        }, 'json');
    });
});