[英]Can I call the function Ready() again in jQuery
我有這個代碼
$(".insert").click(function(){
$(".insert").ajaxStop(function(){
$(".load").hide();
});
$(".insert").ajaxStart(function(){
$(".load").show();
});
$.ajax({
type: "GET",
url: "edit.php",
data: "action=add",
success: function(msg){
$(".control").append(msg);
}
});
});
正如您所看到的,此代碼將edit.php的HTML響應附加到.control
問題是
在附加html之后..所有jquery更改都不適用於它..因為$(document).ready()在此之前已經調用此HTML代碼誕生了...
每當我做任何改變時,我可以調用$(document).ready()嗎?
如果你可以詳細說明你在document.ready函數中做了什么,我可以提供更具體的幫助。 您可以在live()
函數中找到所需內容,該函數模擬將事件應用於對象,即使它們在調用live()
后被添加到DOM中也是如此。
要回答你的問題,是的,你可以通過這樣做來調用事件處理程序:
$(document).ready();
看看jQuery live 。 它旨在自動綁定事件以用於新元素。 它適用於click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,keypress和keyup。
我通過關閉和再次事件解決了這個需求,例如:
$("div.value").off("click");
$("img.cancelEdit").off("click");
$("div.value").on("click", function (e) {
var $this = $(this);
$this.hide();
$this.next().show();
});
$("img.cancelEdit").on("click", function (e) {
var $this = $(this);
$this.parent().hide();
$this.parent().prev().show();
});
你可以使用Selector.Live();
是的,使用參數調用ready函數(無論它是對函數還是匿名函數的引用),都會將它附加到jQuery對事件調用的函數鏈中。
根據您正在進行的DOM操作的結構,您可以使用事件委派將事件處理程序應用於新創建的DOM元素。
http://www.danwebb.net/2008/2/8/event-delegation-made-easy-in-jquery
使用on()而不是live()。 live()有一些缺點,它是折舊的。
如果您需要在文檔准備就緒時運行,請將其包裝在$(document).ready(function(){});
它將在適當的時間運行。
您可以在多個位置向document
的.ready()方法添加規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.