#
更新:質問の最後にある回答を参照してください
#
次の問題が発生しています。
特定のイベントでロードされるすべてのイベント/プラグインをロードする関数を作成しました。ページが最初にロードされると、コンテンツがロードされるコンテナが呼び出される ajax 呼び出しが行われると、これが「body」にロードされます。
(function($){
$.fn.defaultFormValues = function(){
return this.each(function(){
var element = $(this);
var defaultValue = element.attr("default");
var currentValue = element.val();
// This will make sure not to replace exisitng values
if( !currentValue ) {
element.val( defaultValue ).addClass('input-before-focus');
}
else if( currentValue == defaultValue ) {
element.addClass('input-before-focus');
}
element.unbind('focus').bind('focus', function() {
if( element.val() == defaultValue ) {
element.val('').removeClass('input-before-focus');
}
});
element.unbind('blur').bind('blur', function() {
var currentVal = element.val();
if( currentVal == '' ) {
element.val(defaultValue).addClass('input-before-focus');
}
});
}); // end function
};
})( jQuery );
(function($){
$.fn.loadEvents = function(){
return this.each(function(){
var containerObj = $(this);
$("input[default], textarea[default]",containerObj).defaultFormValues();
});
};
})( jQuery );
次のように最初の呼び出しをロードします。
$("body").loadEvents();
ajax コンテナーがロードされると、次のようなイベントがロードされます。
container.loadEvents();
何らかの理由で、ajax 呼び出しに対してイベントが機能しません。
どんな助けでも大歓迎です。
アレクサンダー
- 答え
わかりました問題を理解することができました。container.replaceWith(…) を利用するたびに、要素「コンテナ」への参照は削除され、その要素の新しいインスタンスに置き換えられているため、使用できなくなります。
誰かが同じ問題に遭遇した場合に備えて、これは私が単に見逃した論理項目です.
アレクサンダー