jquery阻止默认不起作用

时间:2009-08-04 23:48:11

标签: jquery

我想在用户点击拇指图像时更改图像,并阻止它跳转到页面顶部。

我写的第一个代码:

$('#photos-list img').click(function(e) {
    e.preventDefault();

    var imgObj = new Image();
    var targetObj = $('#main_image img');
    imgObj.onload = function() {
        targetObj.attr('src',this.src);

    }
    imgObj.src = $(this).attr('rel');
});

preventDefault()工作正常。好吧,我想为图像更改添加一些效果,比如淡入,我在

中添加了一些jquery效果
$('#photos-list img').click(function(e) {
    e.preventDefault();

    var imgObj = new Image();
    var targetObj = $('#main_image img');
    imgObj.onload = function() {
        targetObj.hide();
        targetObj.attr('src',this.src);
        targetObj.fadeIn('normal');

    }
    imgObj.src = $(this).attr('rel');
});

而这次,preventDefault不起作用,即使我给fadeIn()一个防止默认,如:

targetObj.fadeIn('normal', function(e1){e1.preventDefault();});

解决这个问题的任何方法?

5 个答案:

答案 0 :(得分:4)

尝试用

结束功能
return false;

答案 1 :(得分:2)

你必须收到一个错误,因为preventDefault失败了(虽然乍一看js看起来还不错)。你有萤火虫吗?这是确切的来源吗?

答案 2 :(得分:0)

您需要启用ie支持。

尝试以下方法:

$('#photos-list img').click(function(event) {
var ev = event || window.event;
ev.preventDefault();
// ... the rest of your code

答案 3 :(得分:0)

jQuery fadeIn函数的回调没有收到事件参数。

我认为你有以下结构:

<div id="#photos-list>
  <a href="#"><img src="..." /></a>
</div>

所以试试这个:

$('#photos-list a').click(function(e) {
    e.preventDefault();
});

答案 4 :(得分:0)

它的工作:

if(event.preventDefault){
    event.preventDefault();
}else{
    event.returnValue = false; 
};