0

我有这个页面,一旦页面成功加载,就会加载一个 javascript:

$(document).ready(function() {
    //I have this triggering event
    $(".myinput").click(function() { /*code here*/
    });
    $.post("load/post.php", {
        message: message,
        poster: <? php echo json_encode($_SESSION['id']); ?>,
        id: <? php echo json_encode($_SESSION['id']); ?>
    }, function(result) {
        $(html).append(result);
    });
});

结果包含与 click 函数具有相同类的输入,class=myinput但是在将其内容附加到 html 后不会触发 click 事件$.post......我怎样才能让它也为该函数触发?谢谢你。

4

3 回答 3

0

尝试使用on(或者live如果是旧版本的 jQuery):

$(".myinput").on("click", function(){
    /*code here*/
  });

您可能需要执行以下操作:

 $('#parent').on("click", ".myinput", function() {
    /*code here*/
 });

更多信息:http ://api.jquery.com/on/

于 2013-07-13T14:01:31.510 回答
0

好的,这里的问题是,当您设置事件处理程序时,jquery 期望 HTML 是在处理程序之前设置的。要允许 jquery 为不存在的 HTML(dom 对象)设置处理程序,那么您应该使用以下内容:

$('body').on('click', '.myinput', function(){
/*code here*/
});
于 2013-07-13T14:04:47.360 回答
0

您需要绑定要在单击时执行的代码$.on(或者$.live,如果使用旧版本的 jQuery):

$.on("click", ".myinput", null, function(){
    /*code here*/
});

这是因为$(<your expression here>)返回当前 DOM 中与您的搜索匹配的元素列表。

于 2013-07-13T14:05:16.550 回答