jquery从“bind-click”切换到“......立即加载?”

时间:2014-03-02 22:44:43

标签: jquery

所以我有一些jquery,目前它是通过点击一个链接激活它,它只是从文本更改链接打开嵌入在网页中的谷歌地图视图 - 我想消除点击和只是想要的需要要加载的地图

我没有写模板和Imma jquery noob,有人会握我的手吗?

        $(".openGoogleMap").bind('click', function() {
            if(self.curPageview !== null && self.curPageview !== undefined){
                self.curPageview.find("#map_canvas").each(function (){
                    $(this).addClass("openMap");
                    setTimeout(function(){
                        try{
                            if(!self.mapLoad) { map_initialize(); self.mapLoad = true; } 
                        } catch (e) {
                            $(this).html($(this).data("con"));          
                        }   
                        mapResizer();

                        self.curPageview.find(".m-Scrollbar").each(             
                          function(){   
                            var selg = $(this);             
                            if(selg.data('added')){ 
                                try{    selg.mCustomScrollbar("update");    } catch (e) { }                         
                            }
                        });

                    },700); 
                });
            }
        });

目前,.bind('click是允许我点击文本以在其位置加载地图的内容...我只是希望地图在视野中或任何时候加载(模板有点时髦,它是一个寻呼机,有大量的javascript funkyness)

我尝试将'click'更改为'load'和'inview'(猜猜它是一个单独的脚本?)但现在我认为.bind可能是问题

2 个答案:

答案 0 :(得分:0)

快速破解将是:

$(".openGoogleMap").click();

答案 1 :(得分:0)

如果我正确理解了这一点,您希望消除对click事件的要求,而只是尽快执行包含的代码。您可以实现此目的的一种方法是将其绑定到文档的“就绪”事件而不是.openGoogleMap的“单击”事件。只需在第一行中交换一些内容:

$(document).ready( function() {
    if(self.curPageview !== null && self.curPageview !== undefined){
        self.curPageview.find("#map_canvas").each(function (){
            $(this).addClass("openMap");
            setTimeout(function(){
                try{
                    if(!self.mapLoad) { map_initialize(); self.mapLoad = true; } 
                } catch (e) {
                    $(this).html($(this).data("con"));          
                }   
                mapResizer();

                self.curPageview.find(".m-Scrollbar").each(             
                  function(){   
                    var selg = $(this);             
                    if(selg.data('added')){ 
                        try{    selg.mCustomScrollbar("update");    } catch (e) { }                         
                    }
                });

            },700); 
        });
    }
});

现在代码将在文档加载后立即触发 - 虽然我不能肯定这会起作用,因为我不知道它如何适应插件中的其余代码;可能存在我没有考虑的依赖关系。 (稍微相关的说明,“。bind()”在较新版本的jQuery中已弃用,因此如果您不使用旧版本,请尝试避免使用它。)

无论如何,希望这会有所帮助!让我知道它是否有效 - 如果不是,我会很乐意进一步提供帮助。