[解決済み] divが可視化されたときにアクションを起こすjQueryイベント
2022-03-16 13:51:07
質問
私のサイトではjQueryを使っていますが、あるdivが表示されたときに特定のアクションを起こしたいのです。
任意の div に "isvisible" イベントハンドラのようなものを付けて、その div が可視化されたときに特定のコードを実行させることは可能でしょうか?
以下のような疑似コードのようなものが欲しいです。
$(function() {
$('#contentDiv').isvisible(function() {
alert("do something");
});
});
alert("do something")コードは、contentDivが実際に表示されるまで起動しないようにする必要があります。
ありがとうございます。
解決方法は?
常にオリジナルに追加することができます .show() メソッドを使用すると、何かを表示するたびにイベントを発生させる必要がなくなりますし、レガシーコードで動作させる必要がある場合にも便利です。
Jqueryの拡張機能です。
jQuery(function($) {
var _oldShow = $.fn.show;
$.fn.show = function(speed, oldCallback) {
return $(this).each(function() {
var obj = $(this),
newCallback = function() {
if ($.isFunction(oldCallback)) {
oldCallback.apply(obj);
}
obj.trigger('afterShow');
};
// you can trigger a before show if you want
obj.trigger('beforeShow');
// now use the old function to show the element passing the new callback
_oldShow.apply(obj, [speed, newCallback]);
});
}
});
使用例です。
jQuery(function($) {
$('#test')
.bind('beforeShow', function() {
alert('beforeShow');
})
.bind('afterShow', function() {
alert('afterShow');
})
.show(1000, function() {
alert('in show callback');
})
.show();
});
これにより、元の .show() メソッドの通常の動作を実行しながら、beforeShow と afterShow を効果的に行うことができます。
また、別のメソッドを作成して、オリジナルの .show() メソッドをオーバーライドする必要がないようにすることもできます。
関連
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
[解決済み] ユーザーがDIVの外側をクリックしたときに、jQueryを使用してDIVを非表示にする
-
[解決済み] jQueryを使用してdivのinnerHTMLを置き換えるには?
-
[解決済み] jQueryのイベントハンドラを削除する最良の方法?
-
[解決済み] jQuery 複数のイベントで同じ関数を起動する
-
[解決済み] jQueryを使用してDIVを画面の中央に配置する
-
[解決済み] jQueryイベントKeypress。どのキーが押されたか?
-
[解決済み] jQuery checkbox checked state changed event
-
[解決済み] [Solved] 'blur'イベントが発生したとき、フォーカスがどの要素に*行ったかを調べるにはどうすればよいですか?
-
[解決済み】absoluteの親divの子要素をホバーしたときのonmouseoutをjQueryなしで防止する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
jQueryのコピーオブジェクトの説明
-
vueにおけるv-forループオブジェクトのプロパティ
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
JavaScriptのgetElementById()メソッド入門
-
[解決済み] スクロールした後に要素が表示されているかどうかを確認するには?
-
[解決済み] 要素が可視化されたときのイベントリスナー?