2010-01-21 27 views
0
<script type="text/javascript"> 

$(document).ready(function() { 
$("a").click(function(event) { 
    alert("Thanks for visiting!"); 
    }); 
}); 
</script> 

<style> 
div.iframe-link { 
position: relative; 
float: left; 
width: 175px; 
height: 205px; 
margin: 0 1em 1em 0; 
border: 3px solid blue; 
} 

    a.iframe-link { 
    position: absolute; 
    top:0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
} 
</style> 
</head> 

<body> 

<a href="swedish.html">click link to populate container</a><br> 

<!-- note: it populates the container at load currently ... I only want it to 
populate  after clicking the link --> 
<div class="iframe-link"> 
<iframe src="swedish.html?style=sandbeach" style=" border-width:2 " width="175"  
height="175" frameborder="2" scrolling="no"></iframe> 
</div> 


</body> 
</html> 

回答

1

您需要在您的点击处理程序中使用return false

此外,在某些浏览器中,这可能还不够 - >您还应该拨打preventDefault()

这里有一个工作示例:

$(function() { 
    $("a").click(function(e) { 
     $('.iframe-link').html('<iframe src="swedish.html?style=sandbeach" style=" border-width:2 " width="175" height="175" frameborder="2" scrolling="no"></iframe>'); 
     e.preventDefault(); 
     return false; 
    }); 
}); 
+1

在jQuery中,'回报FALSE'永远是不够的。 – SLaks 2010-01-21 03:26:05

+0

这完美地解决了这个问题,感谢Jacob和我的非常好的回应。 – sonny5 2010-01-21 21:59:55

0

像这样:

$(function() { 
    $("a").click(function(event) { 
     $('.iframe-link').html('<iframe src="swedish.html?style=sandbeach" style=" border-width:2 " width="175" height="175" frameborder="2" scrolling="no"></iframe>'); 
     return false; //Prevent the default action. 
    }); 
}); 

注意,这将处理click事件所有超链接,这可能不是你想要什么。

您应该使用更具体的选择器;最好的办法是给你的<a>元素一个类或id。

0

喜欢的东西:

jQuery(function($) { 
    $('a').click(function() { 
    $('.iframe-link').load("swedish.html?style=sandbeach"); 
    return false; 
    }); 
}); 
0

http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

我会用preventDefault()

$("a").click(function(event){ 
    event.preventDefault(); 
    // do something 
}); 

但在现实中,我假设你在幕后做同样的事情。但是,我相信jQuery应该知道我可能不知道的任何浏览器怪癖(这可能会使其在特殊或复杂情况下执行return false;以外的操作)。

1

这样的事情之一:

$(function() { 
     $("a").click(function() { 
      var link = $(this).attr("href"); 
      $('.iframe-link').html('<iframe src="'+ link +'"></iframe>'); 
      return false; 
     }); 
});