0

我正在使用 $.get() 将带有 javascript 的 html 从 php 加载到 div 到 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>';

我希望每个窗口分别(单独)单击事件并显示警报。在此代码中,单击事件无法根据窗口工作。我能做些什么?

4

2 回答 2

0

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

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

接口:http ://api.jquery.com/on/

请注意:您的附加将使 DOM 无效,因为您的 id 将始终相同,使其成为一个类

在 DOM 中动态添加的 html 上附加点击事件

这应该有帮助,:)

像这样

附加单击事件以关闭按钮,如下所示:

$("#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');
    });
});
于 2012-06-30T04:50:16.400 回答
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');
    });
});
于 2013-04-30T14:23:09.627 回答