2013-03-11 22 views
1

我已经坚持了这一点,以显示HTML的jQuery的超链接的onclick特定的div,我曾尝试下面的代码,并没有得到解答,jQuery的:酥料饼onclick事件

$(function() { 
    var moveLeft = 20; 
    var moveDown = 10; 

    $('a#trigger').click(function(e) { 
     $('div#pop-up').show() 
      .css('top', e.pageY + moveDown) 
      .css('left', e.pageX + moveLeft) 
      .appendTo('body'); 
     }, function() { 
      $('div#pop-up').hide(); 
    }); 
    $('a#trigger').mousemove(function(e) { 
     $("div#pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft); 
    }); 
}); 

这里我有尝试hover()方法,而不是click()方法,它的工作当我把click()它不会,但我需要click()方法工作,我如何实现它?请帮助...

回答

2

,因为不像悬停(),点击()方法仅支持单处理器。
看到这个:http://api.jquery.com/click/

所以你的情况,请注意代码片段:

   $('a#trigger').click(function(e) { 
        $('div#pop-up').show() 
        .css('top', e.pageY + moveDown) 
        .css('left', e.pageX + moveLeft) 
        .appendTo('body'); 
       }, function() { 
        $('div#pop-up').hide(); 
       }); 

第一个功能,您打算在点击执行,实际上是被作为毫无意义的事件传递数据每次你点击一个#触发器,这是正在执行的第二个函数。

你可以交替这样的代码是:

var triggerState = 0; 
$('a#trigger').click(function(e) { 
    if (triggerState === 0) { 
     $('div#pop-up').show() 
     .css('top', e.pageY + moveDown) 
     .css('left', e.pageX + moveLeft) 
     .appendTo('body'); 
     triggerState = 1; 
    } 
    else if (triggerState === 1) { 
     $('div#pop-up').hide(); 
     triggerState = 0; 
    } 
}); 

我想你做出以为点击,像盘旋的错误,接受了不同状态的两个功能 - 不幸的是没有 - 鼠标悬停和鼠标移开是明确的状态可跟踪,但是,“交替点击”不是明确的可跟踪状态,因此jQuery点击不提供此功能。

+0

感谢它的工作.... – 2013-03-11 10:08:02

0

试试这个:

$(function() { 
    var moveLeft = 20; 
    var moveDown = 10; 

    $('a#trigger').click(function(e) { 

     if($('div#pop-up').length) 
     { 
      $('div#pop-up').toggle(); 
     } 
     else 
     { 
      $('div#pop-up') 
       .css({'top': e.pageY + moveDown,'left': e.pageX + moveLeft}) 
       .appendTo('body').show(); 
     } 
    }); 

    $('a#trigger').mousemove(function(e) { 
     $("div#pop-up").css({'top': e.pageY + moveDown,'left': e.pageX + moveLeft}); 
    }); 
}); 
+0

没有找到合适的人 – 2013-03-11 09:58:09

+0

检查'div#弹出'是否在'body'中创建?或者尝试上面的答案,我改变了 – 2013-03-11 09:59:46

+0

它存在,我已经检查了这个悬停()功能。 – 2013-03-11 10:04:33