0

DIV 内にフォームがあります (通常、div は "display:none;" を使用して非表示になっています)。ユーザーは次の方法で DIV を開きonclick='$("#Details").show("slow"); ます。フォームに入力し、データを保存します。

ページ全体をリロードしたくないので、この DIV だけをリロードする必要があります

私は試した:

function(data) {
    $('#Detalils').load(location.href + ' #Detalils');
});

と:

$("#Detalils").load(location.href + " #Detalils, script");

と:

$('#Detalils').load(location.href + ' #Detalils', function() {
$('#script').hide();
})

#script のどこに自分のスクリプトを置きますか

この div にはいくつかのスクリプトがあり、ロード スクリプトの実行時に jQuery が実行されるため、スクリプトは実行されません。

スクリプトを外部ファイルに入れることはできません。ページの本文にある必要があります。

スクリプトをうまく実行する方法はありますか?

ありがとう

4

2 に答える 2

0

私のローカル環境内で動作します。試してみてください。

HTML:

<div id="wrapper">
<a href="/" id="mremovebtn" title="remove">Remove</a>
<a href="/" id="mreloadbtn" title="reload">Reload</a>
<div id="Details">my details box</div>
</div>

jQuery:

<script type="text/javascript">

function mload() {
/*LOAD IN MY EXTERNAL STUFF*/
    mtarget =  $('#Details'); //the element on your page, that houses your external content
    mscript = 'external.js'; //the js script required for your plugin to work
    mtarget.load("external.html", function(){
    $.getScript(mscript, function() {
        //run the plug-in options code for your external script here
    });
 });
//*/
}

function madjustments() {
/*ADJUST THE LOADING PROCESS*/
    //remove the load request on click from your remove button
    $('#mremovebtn').on("click",function(e) {
      e.preventDefault();
      $('#Details').children().remove();
    });

    //reload the request on click from your reload button
    $('#mreloadbtn').on("click", function(e) {
      e.preventDefault();
      mload();
    });
//*/
}


(function($){
  mload();
  madjustments();
})(jQuery);
</script>

明らかに 2 つの追加ファイルが必要です。私のデモコードが機能するように、1つはexternal.htmlと呼ばれ、もう1つはexternal.jsと呼ばれます。ただし、命名プロセスは自分に合ったものに変更できます。

追加: #external など、(親要素の) 外部 html ファイルにクラスを設定します。また、デフォルトでは、スタイル シートで CSS を display:none に設定します。次に、ページがロードされたら、jQuery コードで単に show() します。

于 2013-06-20T17:11:10.127 に答える