我有使用Jquery和Ajax从另一个页面加载图像的代码。
$('a').click(function(){
$('<div id="smiley">').load("ajax.html img",function(){
$(this).hide().appendTo('#new').fadeIn()});
return false;
})
然而,有两个问题: 1.我无法阻止链接在同一时间打开页面上的其他链接(即使我做了#box或类似的东西。) 2.每次单击链接时图像都会加载。我尝试返回false ,* preventDefault *但似乎没有任何效果。有什么想法吗?
由于 米罗
答案 0 :(得分:0)
问题1通过将href
标记的a
属性设置为:href="javascript:void(0);
问题2的解决方法是向您希望拥有此行为的一个标记添加id
,例如id="img_loager"
,然后将您的点击分配更改为:
$("#img_loader").click(function(){...
现在您将行为分配给所有a
标记。返回false并防止默认只会阻止事件传播到它的目标父节点。 :)
答案 1 :(得分:0)
我们知道return false
和preventDefault()
只是阻止了dom的默认行为,例如单击标记<a href="other.html">
时链接到其他页面的默认行为。
但是,它无法阻止DOM事件侦听器回调,例如:
$('a').on('click', function(event){
event.preventDefault();
doSomething();
return false;
});
代码可以阻止点击的dom的默认行为,但不能取消doSomething()
的执行。
答案 2 :(得分:-1)
删除href属性并应用文本修饰样式
<a style="text-decoration: underline;" title="click me"></a>
这是一个相关的问题:HTML Divs show/hide issue