0

私は bPopup jquery ライブラリを使用しています。onclose イベントに追加する構文は非常に簡単です。

$('element_to_pop_up').bPopup({
     onOpen: function() { alert('onOpen fired'); }, 
     onClose: function() { alert('onClose fired'); }
})

私がやりたいことは、オブジェクトが作成された後に onClose イベントに何かを追加することです..それは可能ですか?

4

4 に答える 4

2

一般に、後でいじる関数を作成することでこれを行うことができます。

var myOnClose = function() { alert('onClosed fired'); }
function doOnClose() { myOnClose(); }

$('element_to_pop_up').bPopup({
    onOpen: function() { alert('onOpen fired'); }, 
    onClose: doOnClose
})

// later...
myOnClose = function() { console.log("Doing something different!"); }
于 2015-04-08T04:46:01.020 に答える
1

要素のbPopup内部に存在するオブジェクトにアクセスできます。data

$('element_to_pop_up').bPopup({
    onOpen: function() { alert('onOpen fired'); }, 
    onClose: function() { alert('onClose fired'); }
});

$('element_to_pop_up').data('bPopup');

注:作成されたオブジェクトが要素のデータに常に存在するという保証はありません。しかし、これは広く使用されているアプローチです。提供されたコールバックに依存することをお勧めします。

于 2015-04-08T04:46:10.923 に答える
0
var realOnclose = f1;
function myOnClose(){realOnclose();}
 $('element_to_pop_up').bPopup({ 
    onOpen: function() { alert('onOpen fired'); },
    onClose: myOnClose
})

function f1() { alert('onClose fired'); } 
function f2() { alert('hey I am another function'); } 

//when you want to change the action when onclose...
realOnclose = f2;
于 2015-04-08T04:46:44.690 に答える