所以我有一些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可能是问题
答案 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中已弃用,因此如果您不使用旧版本,请尝试避免使用它。)
无论如何,希望这会有所帮助!让我知道它是否有效 - 如果不是,我会很乐意进一步提供帮助。