4

私はファイルと一緒にデータをロードしました$('#result').load('test.php')、それは完全に正しく機能しています。

これがtest.phpスクリーンショット ですここに画像の説明を入力してください

これがライトボックスにロードされたファイルです。 ここに画像の説明を入力してください

test.phpのファイルでは、onclickイベントを使用してライトボックスに別のファイルもロードします。ライトボックスは、新しくロードされたファイルで正しく表示されます。これがlighboxを呼び出すコードです:

jQuery('#wt_opp_coll .coun').click(function(){
        jQuery(this).jpLightBox({
            width: 500,
            height: 250,
            url: 'components/content/test_file.php'
            //message: 'Just Testing the file'
        });
    });

これにより、ライトボックスにtest_file.php正しく表示されているが、最後にロードされたファイルtest.phpがライトボックスに表示されなくなります。2番目のスクリーンショットに表示されるように、ライトボックスのみが表示され、最初のスクリーンショットのようにバックグラウンドに詳細は表示されません。

test.php最後にロードしたファイル( )も消えないように助けてください。

注:.load() URLをロードするためにlighboxの関数も使用しています。

4

3 に答える 3

0

この奇妙な問題の原因はわかりませんが、しばらく前に問題が発生しました。私がそれを解決した方法は、livequeryを使用してクリックイベントを処理することでした。理由を聞かないでください。私は何時間も図書館とドキュメントを調べ、他の人からの答えを見つけようとしましたが、役に立ちませんでした。

試してみてください。livequeryの使用に問題がなければ、それが解決策になる可能性があります。

これが私のコードのスニペットです。これは、ロード呼び出しの最大50の異なるインスタンスに使用され、すべてが機能します。一部は、他のロードされたデータによって動的に作成されたリンクでもありました。

function ajaxContent(link, sel, reg, extReg) {
$(sel).not(link).removeClass("active");
$(link).addClass("active");

var toLoad = $(link).attr('href')+ ' ' + extReg;

$(reg).fadeOut('slow',loadContent);

function loadContent() {
    $(reg).load(toLoad,'',showNewContent())
}

function showNewContent() {
    $(reg).delay(200).fadeIn('slow');
}

}

$(document).ready(function() {

// Top left "main" nav
$('#jax-nav li a').livequery("click", function(event) {
    ajaxContent(event.target, '#jax-nav li a', '#page-content', '#ajax-out');
    return false;
});    
于 2012-10-05T06:09:57.880 に答える
0

私はライトボックスで何もしていませんが、問題#wt_opp_coll .counは新しいライトボックスに置き換えていることでしょうか?

jQuery('#wt_opp_coll .coun').click(function(){
        jQuery(this).jpLightBox({
            width: 500,
            height: 250,
            url: 'components/content/test_file.php'
            //message: 'Just Testing the file'
        });
    });

2 行目にはjQuery(this)、親に示す whichがあります#wt_opp_coll .coun#wt_opp_coll .counつまり、ライトボックスがコンテンツに取って代わりつつあるということです。

于 2012-07-31T08:54:17.050 に答える
0

ライトボックスのhtmlに空のdivを配置してみてください

<div id="lightBoxDiv"></div>

コードを編集します

jQuery('#wt_opp_coll .coun').click(function(){
        jQuery("#lightBoxDiv").jpLightBox({
            width: 500,
            height: 250,
            url: 'components/content/test_file.php'
            //message: 'Just Testing the file'
        });
    });

また、閉じるボタンでこのdivのコンテンツをフラッシュする必要があります。そうしないと、ベースhtmlに影響します

このコードを閉じるボタンに配置します

$("#lightBoxDiv").html('');
于 2012-10-05T07:22:42.290 に答える