引发附加到元素的事件处理程序

时间:2012-04-17 10:49:39

标签: jquery ajax asp.net-mvc asp.net-mvc-3

我想引发附加到元素(#scheduleLink)的事件处理程序。 我有一个页面(第1页),其中包含以下JS:

$(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和triger不起作用。如何正确地做到这一点?
感谢。

1 个答案:

答案 0 :(得分:0)

加载发布标签功能工作异步。所以#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); 
    }    
});

});