2012-08-08 27 views
0

我只是想寫出像這樣的代碼:運行.hover()可變jQuery的內部

var clickAction = function(){ 
    $('#OL_Icon_55').append("<em class='well'>Hello World</em>"); 
} 
$("body").one("mouseenter",clickAction); 

而且我想隱藏Hello World字符串時,鼠標懸停各地#OL_Icon_55,比代碼將看起來像這個:

var clickAction = function(){ 
    $('#OL_Icon_55').append("<em class='well'>Hello World</em>", function() { 
     $(this).hover(function() { 
      $(".well").hide(); 
     }); 
    }); 
} 
$("body").one("mouseenter",clickAction); 

但是這對我不起作用。有沒有人有更多的想法或正確的代碼,以便懸停功能可以工作?

+0

的'append'方法沒有回調。另外FYI'hover()'將在下一個jQuery中被棄用。 – elclanrs 2012-08-08 21:18:01

+0

你可以給我一些例子,以便代碼可以工作嗎? – 2012-08-08 21:19:42

+0

爲什麼你要這樣做呢?爲什麼只有一次事件發生在身體上?你的邏輯看起來有點不對...... – elclanrs 2012-08-08 21:22:26

回答

1

看一下這個fiddle

如果鼠標位於#OL_Icon_55內,將顯示'Hello World'。

這裏的JS:

var $OL = $('#OL_Icon_55'), 
    $span = $("<span class='well'>Hello World</span>"); 

$("body").one("mouseenter", function() { 
    $OL.append($span); 
}); 

$OL.mouseenter(function() { 
    $span.show(); 
}).mouseout(function() { 
    $span.hide(); 
});        
1

偷走的大部分代碼@depot。但更短的

$(function(){ // <-- on dom ready 
    var $OL = $('#OL_Icon_55'), 
    $span = $("<span class='well'>Hello World</span>"); 

    $("body").one("mouseenter", function() { // <-- on one mouse enter 
     $OL.append($span); // <-- append span 
    }); 

    $OL.hover(function() { // <-- on hover 
     $span.toggle(); // <-- toggle (show/hide) span 
    }); 
});  

http://jsfiddle.net/EeGYs/3/

+0

喜歡你的解決方案,因爲當你將鼠標懸停在它上面時不會隱藏div。 +1 – 2012-08-08 21:35:11