0

次のコードがあります。

 $("#scheduleLink").trigger("click");
 alert("text")

これはクリック ハンドラーです。

$("#scheduleLink").bind("click", (function () {
            loadScheduleEvent();
            $(".wrap_tabs").find("a").removeClass("active"); 
            $(this).addClass("active");
        }));

機能loadScheduleEvent:

function loadScheduleEvent() {
        var eventId = $(".movie").attr("eventId");
        var type = $(".movie").attr("type");
        $("#publicationBlockContent").load("/Publication/EventSchedule?eventId=" + eventId + "&type=" + type);
    }  

このコードは非同期で動作すると思います。が終了したalert("text") ときにのみ呼び出す必要があります。loadScheduleEventこれどうやってするの?

ありがとう。

更新: 実際、代わりにalert("text")いくつかのコードがあります。そして、このコードを $.load 関数のコールバックに移動できません。

4

4 に答える 4

2

.load コールバックを使用する

$("#publicationBlockContent")
    .load("/Publication/EventSchedule?eventId=" + eventId + "&type=" + type,
          function(){alert("text");}
    );

追加のコールバック パラメータなどについては、rtm http://api.jquery.com/load/を参照してください。

于 2012-04-20T12:40:25.833 に答える
1

そのコードをアラートに置き換えたくない場合は、アラートに置き換えられた動作をトリガーする 1 つのイベントを起動するだけです。

$("#scheduleLink").bind("click", (function () {
        loadScheduleEvent();
        $(".wrap_tabs").find("a").removeClass("active"); 
        $(this).addClass("active");
    }));



$(window).bind("scheduleComplete", (function (event,params) {
      alert(params);
    }));

loadScheduleEvent で、それをトリガーする必要があります。

 function loadScheduleEvent() {
    var eventId = $(".movie").attr("eventId");
    var type = $(".movie").attr("type");
    $("#publicationBlockContent").load("/Publication/EventSchedule?eventId=" + eventId + "&type=" + type,function(){$(window).trigger("scheduleComplete");});
}

最後に、このシーケンスを実行するときに、クリックイベントのみをトリガーする必要があります

$("#scheduleLink").trigger("click");

また、 window に対して scheduleComplete イベントを公開したくない場合は、それを scheduleLink にバインドして、その動作を範囲指定して特定することもできます!!!...

于 2012-04-20T13:43:33.823 に答える
0
$("#publicationBlockContent").load"/Publication/EventSchedule?eventId=" + eventId + "&type=" + type,    
function (responseText, textStatus, XMLHttpRequest) {     
if (textStatus == "success") {          
alert("success")
}
 if (textStatus == "error") {
      alert("failed")
 }
} 
于 2012-04-20T12:46:00.547 に答える