2013-08-23 28 views
1

我有一個內容的jQuery .load加載()函數:jQuery - 如何訪問由Ajax調用顯示的對象?

<input type="text" name="street2" id="street2" value="" class="text" /> 

我有一個簡單的jQuery處理程序以增加價值到輸入標籤上焦點:

jQuery(function($) { 
    $("#street2").focus(function(){ 
     $("#street2").val($("#address").val()); 
    }); 
}); 

JS代碼裝載當對象#street2不存在時,首次加載其他腳本。因此它沒有工作。

我試圖用Ajax直接執行後以不同的方式加載腳本,但沒有成功。 你能告訴我如何用jQuery處理新對象嗎?

在此先感謝

回答

0

您是否嘗試過的事件代表團(「附加的事件處理程序的當前選擇,現在和將來匹配所有元素」)?

$(document).on('focus', '#street2', function(){ 
    $('#street2').val($('#address').val()); 
}); 

隨着事件委派:http://jsfiddle.net/8HHTM/

沒有(如當前的代碼):http://jsfiddle.net/8HHTM/1/

+0

謝謝舉一個真實的例子。它像一個魅力。非常感謝。 – user2710602

+0

@ user2710602沒問題。如果您發現答案有用,請考慮接受它。 – Johan

0

結合的jQuery的焦點事件,選擇 '#street' 相匹配的所有元素當DOM就緒。但是,當dom準備就緒時,ajax調用還沒有完成,因此沒有與您的選擇器匹配的元素。

要確保事件必然要選擇的所有實例(也還未被添加到DOM將來的),使用on()功能:

$(document).on(events, selector, data, handler); 

小提琴:http://jsfiddle.net/FkhHD/

+0

完美。不,我之前沒有試過()函數。感謝您的解釋。 – user2710602