-1

很抱歉造成混淆,请参阅下面的简化示例。我知道如何使用 JQuery 的动态结构来做到这一点:

这在作为 .innerHTML 插入后有效:

<button class='ctrl_row'>Click Me</button>

$(document).on("click", ".ctrl_row", function(){
    //do something
});

这在插入为 .innerHTML 后不起作用:

<button onclick='preview()'>Click Me</button>

function preview() {
    //do something
}

我有相当数量的纯 JavaScript(不是 JQuery)写在一个 php 循环(很多 getElementById)中,它可以工作,所以我不想转换它,那么我如何让纯 JavaScript在被 AJAX 加载后工作?

4

4 回答 4

1

您可以尝试在成功回调中使用它。首先使用.innerHTML插入按钮,例如:

<button id="buttonId">Click Me</button>

然后,您可以使用以下事件处理程序在纯 javascript 中绑定事件:

var button = document.getElementById("buttonId");

if (button.addEventListener)
    button.addEventListener("click", yourhandlerfunction, false);
else if (button.attachEvent)
    button.attachEvent ("onclick", yourhandlerfunction);

你可以在这里阅读更多关于它的信息。希望这可以帮助你!

于 2013-09-29T16:08:40.310 回答
0

这是纯js中的示例代码:

var req;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    req=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    req=new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("POST", "url to the reqst page", true);
    req.send();
    req.onreadystatechange=function(){
        if(req.readyState==4&&req.status==200){

                //here you will get the result from the reqst page after execution
        }
}

将此代码放入函数中,并在需要时调用。

于 2013-09-29T15:58:09.317 回答
0

尝试使用 jQuery 的append('yourhtmlajaxresponse')函数而不是.innerHTML让事件正常工作。

于 2013-09-29T15:49:25.197 回答
0

这已经在这里得到了回答,没有对框架的任何依赖......

这种 Ajax 方法是否适用于许多浏览器和操作系统?

于 2013-09-29T15:45:29.377 回答