1

我想引发附加到元素(#scheduleLink)的事件处理程序。我有一个带有以下 JS 的页面(page1):

$(document).ready(function () {
    loadPublicationTab(); // load partial veiw via ajax
    var tab = "@Model.ActiveTab";

    if (tab === "#scheduleLink") {
        $("#scheduleLink").trigger('click');
        alert("true");
    } 
    else {
        alert("false");
        loadPublicationList(-1, 1); 
    }        
});

function loadPublicationTab() {
    $(".wrap_tabs").load("/Publication/GetPublicationTab?mainPage=" + false + "&isEvent=" + true);
}

loadPublicationTab返回以下内容:

<script type="text/javascript">
    $(document).ready(function () {
        $("#scheduleLink").click(function () {
            loadScheduleEvent();
            $(".wrap_tabs").find("a").removeClass("active");
            $(this).addClass("active");
        });
    });
</script>
// other html 

位于#scheduleLink其他页面和触发器不起作用。如何正确执行此操作?
谢谢。

4

1 回答 1

0

loadPublicationTab 函数异步工作。所以#scheduleLink没有加载到 document.ready 上。您在 上启动事件。load()功能成功

$(document).ready(function () {
    $(".wrap_tabs").load("/Publication/GetPublicationTab?mainPage=" + false + "&isEvent=" + true, 
    function(){
     var tab = "@Model.ActiveTab";

    if (tab === "#scheduleLink") {
        $("#scheduleLink").trigger('click');
        alert("true");
    } 
    else {
        alert("false");
        loadPublicationList(-1, 1); 
    }    
});

});
于 2012-04-17T11:07:31.633 回答