如何重新加载jquery以便它可以用于下一个进程

时间:2012-07-25 05:58:59

标签: javascript jquery html ajax

我有一个问题是运行在JQuery下运行的第二个进程,如下面的代码。

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<body>
    <script type="text/javascript" src='jquery-1.6.2.min.js'> </script>
    <div id="displayArea1">
    </div>
    <br/>
    <div id="displayArea2">
    </div>
    <input id="btnSet" type="button" value="Set The Value" />
    <script>

        //The input that should i use
        var itemToPrintOut1 = "[Input1 (working)]     Search <strong style='cursor:pointer' title='Click here'>IP{<span id='ip1'>192.168.2.56,192.168.2.89,192.168.2.75</span>}</strong> that has accessed to MAIL-SERVER{192.168.2.8}";
        var itemToPrintOut2 = "[Input2 (not working)] Search <strong style='cursor:pointer' title='Click here'>IP{<span id='ip2'>192.168.2.56,192.168.2.89,192.168.2.75</span>}</strong> that has accessed to MAIL-SERVER{192.168.2.8}";

        $("#displayArea1").html(itemToPrintOut1);  //If I enable this line, it is works as what i want(because it is using jquery)

        $("#btnSet").click(function(){
            $("#displayArea2").html(itemToPrintOut2);
        });

        $("#ip1").click(function(){
            alert("Normal method, data = " + $("#ip1").html());
        });

        $("#ip2").click(function(){
            alert("The method I should use, data = " + $("#ip2").html());
        });
    </script>
</body>

第一次(加载时)它会显示itemToPrintOut1文本,我可以点击IP地址。我没有问题!

但是当我点击按钮并显示第二个文本itemToPrintOut2时,我再也无法点击IP了。

任何人都可以帮我解决如何确保第二个输出也可以与JQUERY一起使用。有很多事情也与我有关。 它与JQuery加载有关吗?

由于

3 个答案:

答案 0 :(得分:1)

您正在尝试将处理程序绑定到尚不存在的元素,请尝试以下操作:

<script>

    //The input that should i use
    var itemToPrintOut1 = "[Input1 (working)]     Search <strong style='cursor:pointer' title='Click here'>IP{<span id='ip1'>192.168.2.56,192.168.2.89,192.168.2.75</span>}</strong> that has accessed to MAIL-SERVER{192.168.2.8}";
    var itemToPrintOut2 = "[Input2 (not working)] Search <strong style='cursor:pointer' title='Click here'>IP{<span id='ip2'>192.168.2.56,192.168.2.89,192.168.2.75</span>}</strong> that has accessed to MAIL-SERVER{192.168.2.8}";

    $("#displayArea1").html(itemToPrintOut1);  //If I enable this line, it is works as what i want(because it is using jquery)

    $("#btnSet").click(function(){
        $("#displayArea2").html(itemToPrintOut2);

         $("#ip2").click(function(){
               alert("The method I should use, data = " + $("#ip2").html());
         });
    });

    $("#ip1").click(function(){
        alert("Normal method, data = " + $("#ip1").html());
    });

</script>

然后当您点击ip1时,它会添加ip2 html及其处理程序。

答案 1 :(得分:1)

将click事件添加到ip2时,它不存在。您可以使用jquery“live”将事件绑定到页面上稍后出现的任何内容。

$('#ip2').live('click',function() {});

如果他们的id为'ip2'

,那将在以后添加到文档的任何dom元素上绑定click事件

答案 2 :(得分:1)

您可以在运行时使用.live()而不是.click()来绑定事件。由于.live()已弃用,您可能需要尝试使用.on()方法。