2011-01-27 133 views
0

很容易让一个div背景图片可点击:点击格在新窗口中打开

$(".socialMedia").click(function(){ 
      window.location=$(this).find("a").attr("href"); 
      return false; 
     }); 

你怎么能作出这样的一个新窗口中打开,其不使用锚的目标元素,当我将window.location切换到window.open,我得到一个错误。可能吗? THX

回答

3
$('.socialMedia').click(function(e){ 
    e.preventDefault(); 
    window.open($(this).find('a:first').attr('href'), ''); 
}); 

在这一点JavaScript,我们选择的是有socialMedia类的所有元素。然后我们将一个回调函数绑定到这些元素中的每一个。该函数定义了一个参数e,它代表jQuery Event对象。

现在,当用户点击其中一个socialMeda元素时,我们的回调函数就会执行。首先,该函数使用jQuery event.preventDefault()方法停止浏览器执行任何默认操作(例如,转至在单击的链接元素中定义的URL)。然后我们使用window.open()方法打开我们想要的URL。我们通过查找被单击的socialMedia元素内的第一个链接元素来获取此URL(以防有多个链接)。

+0

+1,但是为什么':first'? – hunter

+0

@ jsummers-完美的作品。所以我假定(e)和e.preventDefault比返回false更好;?你能解释第二部分吗?我看到我们有“window.open”工作,并使用选择器:首先获得div中的第一个链接? ('href')做了什么?我认为与目标有什么关系? –

+0

@hunter,我选择了“:第一”,因为我对他的标记不太了解。 –