2013-07-13 21 views
0

我有這樣的網頁,其中有一次加載該頁面的JavaScript是成功加載:jQuery的返回DIV與

$(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); 
    }); 
}); 

結果包含輸入相同類別的點擊功能,class=myinput但click事件在$.post將它的內容附加到html後不會觸發......我怎麼能讓它爲那個函數啓動呢? 謝謝。

+0

我覺得在信任用戶發送阿賈克斯與海報id一些大的安全問題。 – mishik

回答

0

使用try on(或live如果jQuery的舊版本的):

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

你可能需要做這樣的事情:

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

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

0

OK ,這裏的問題是,當你設置一個事件處理程序時,jquery期望HTML被設置在處理程序之前。爲了讓jQuery來設置HTML(DOM對象)的處理程序不存在,那麼你應該使用類似:

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

您需要將代碼綁定是執行上的點擊與$.on(或$.live,如果用古jQuery的版本):

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

這是因爲在$(<your expression here>)符合您的搜索DOM目前返回元素的列表。