0

私は使用しています:

echo $javascript->link('tools.overlay-1.0.4', false);

これは次のように初期化されます:

$(".overlay_popup").overlay({
    expose: '#000000',
    close: '.close_overlay',
    finish: {
        top: 'center',
        left: 'center',
        absolute: false
    }
});

オーバーレイ ポップアップ ボックスを次のように呼び出します。

echo $html->link(
    "add part",
    array('controller'=>'garage_parts',
        'action'=>'addfrompartlist',
        $gcar['GarageCar']['id'],
        $gcar['GarageCar']['car_id']),
    array('class'=>'js-ajax overlay_popup',
        'id'=>'add_part_overlay',
        'rel'=>'.overlay_container')
);

これはすべてうまく機能しますが、上記の「パーツの追加」ハイパーリンクボタンを動的に追加する ajax 関数があり、この新しいボタンをオーバーレイにバインドする方法がわかりません。通常、私は次のようなものを使用します:

$(".overlay_popup").bind("click", function(){...しかし、これはオーバーレイでは機能しませんでした。これを成功させる方法についてのアイデアはありますか?

4

5 に答える 5

2

Csongor に触発されて、動的に追加されたリンクを試すもう 1 つのこと:

var Overlay = $(".overlay_popup").data("overlay");
$(".overlay_popup").overlay(Overlay.getConf());
于 2011-01-13T15:59:55.873 に答える
1

クリック イベントで API.load を使用しないのはなぜですか?

http://flowplayer.org/tools/overlay.html

var overlayDiv = $(".overlay_popup").overlay({expose: '#000000', close: '.close_overlay',   finish: { top: 'center', left: 'center', absolute: false }});

$(".overlay_popup").bind("クリック", function(){overlayDiv.load();})

于 2010-02-01T20:08:24.703 に答える
0

私は解決策を持っています、私の悪い英語をお詫びします...

これは解決策です:

librarie tools.overlay-1.1.2.jsで、関数overlay()の前に次のコードを追加します。

 $.fn.addObjectToOverlay = function(element, confOverlay){
  el = new Overlay($(element), confOverlay);
  instances.push(el);
  $(this).data("overlay", el);
 };

 // jQuery plugin initialization
 $.fn.overlay = function(conf) {  

次に、このような関数を呼び出す必要があります

$('#avisoFav').remove();
$video = $(respuesta);
$video.css("display", "none");
$("#contenidoFav").append($video);
$.each($video.find('.linkRMTP'), function (index, obj){
 $video.addObjectToOverlay(obj, confOverlay);
});
$video.slideDown('fast');

変数「confOverlay」は私のオーバーレイの構成です。例:

confOverlay = { 
   effect: 'drop', 
   expose: '#789',
   top:25,
   closeOnClick : false,
   fastInSpeed : 'fast',
   onBeforeLoad: function(){
    idVideo = $(this.getTrigger()).attr("idVideo");
    idiomaActual = $(this.getTrigger()).attr("idiomaActual");
    onBeforeLoad(idVideo, idiomaActual);
   },
   onLoad: function(){
    $("#contenedorVideo > *").remove();
    url= $(this.getTrigger()).attr('link');
    onLoaded(url);
   },
   onClose: function (){
    $("#contenedorVideo > *").remove();
   }
  };

これで、オーバーレイに対して行う必要があるのは、新しい作成要素をリアルタイムで処理することだけです。

アッテ。サルバドールロメロ

于 2009-11-23T16:18:09.557 に答える
0

jQuery live( type, fn ) メソッドを使用します。

$(".overlay_popup").live("click", function(){...})現在一致しているすべての要素にハンドラーをバインドしますが、セレクターにも一致するすべての新しい要素にもバインドします。

于 2009-11-03T01:14:15.823 に答える