2013-07-29 46 views
0

https://dl.dropboxusercontent.com/u/63617776/Capture.PNGJQuery的 - 。点击触发点击任何地方时,应:在点击一个链接

因此,作为在图像上,当你点击地图上,一个div被改变。现在,当我点击div中的链接时,我希望google maps div更改为另一个地图。

但是,我写的代码根本不会触发,或者当我点击页面上的任何位置时触发。

$('#nowydwor').ready(function(){ 
$(this).click(function(){ 
     alert('foo'); 
    }); 
}); 

Ofcourse链接看起来是这样的: {一个ID = “nowydwor”} {文/ A}

这(由于某种原因,我不能进入<,所以我用{代替它)当用户点击页面上的任何地方时出于某种原因触发。这也只是现在的测试代码,它是为了显示警报。 :) 有任何想法吗?

编辑:该链接包含在.html()中,在switch()语句中。

case '#mazowieckie': 
    $('#info').html("CONTENT </h5><hr><strong><a id='nowydwor'>Skład Nowy Dwór Mazowiecki</a></strong> CONTENT");  

休息;

回答

0

我想你要做的,就是分配click处理的#info内容之后发生了变化。不幸的是,.ready()只是文档就绪事件的事件处理程序。它只发射一次。同时更改'#info'的html不会触发任何事件(恕我直言)。

您可以在父元素上使用.on - 方法解决此问题。考虑这个HTML结构:

<div id="info"> 
    <!-- This content is dynamically loaded --> 
    <a id="nowydwor">Click this to change map</a> 
    <!-- End of dynamic content --> 
</div> 

这使得可以拨打:

$('#info').on('click', '#nowydwor', function(){ /* Change map here... */ }) 

此分配事件处理程序#info,其中如果点击的元素相匹配'#nowydwor'只调用。由于'#info'从不删除,只有内容发生变化,您不必再次应用它。

唯一的一点是,您必须确定地图/地点的id是什么,因为事件处理程序对于所有链接都是相同的。

+0

像魅力一样工作,谢谢! –

1

调用ready只有在您拨打document/window时调用它才能在DOM准备就绪时收到通知。

尝试将click处理程序直接绑定您的DOM元素:

$('#nowydwor').on('click', function(){ 
    alert('foo'); 
}); 
+0

这不会触发任何东西。我使用了准备好的东西,因为链接在$('#link')。html('content link');功能,直到您点击地图后才会被解析。 –