2016-02-06 294 views
2

我添加此代碼爲鼠標懸停時(STATUS_ID變化)鼠標懸停在jQuery的

$("#test"+status_id).mouseover(function(){ 
    $('.data'+status_id+'a').show(); 
}); 

,但是,它不會顯示鼠標懸停。但添加警告以打印類如下:

alert("#test"+status_id) 
$("#test"+status_id).mouseover(function(){ 
    $('.data'+status_id+'a').show(); 
}); 

導致該功能開始正常工作。我不知道爲什麼差異。有什麼建議麼?

+0

你是否能夠在mouseover()內部獲得警報? –

+0

在$(「。data」+ status_id ...)中,您正在調用一個類,而不是一個id。如果這沒有幫助,則顯示更多代碼。 – Joerg

+0

你是動態創建任何div的? –

回答

0

我覺得這個部分:你打電話後創建$('.data'+status_id+'a')。使用這樣的:

$(document).on("mouseover","#test"+status_id, function() { 

    $('.data'+status_id+'a').show(); 

}); 

注: 我希望這意味着$('.data'+status_id+'a').show();財產以後這樣的:

<a class="data5" ></a> 
0

這應該工作:

$("#test"+status_id).hover(function() { 
    $('.data'+status_id+'a').show(); 
    alert('test'); 
}); 
+0

如果說*爲什麼要使用'.hover()'而不是'.mouseover()',這個答案會更好。 –

0

我要去猜測問題就是你的代碼在瀏覽器準備好之前就運行了(並且警報延遲了它的工作)。你應該幾乎總是圍繞jQuery代碼以支票爲瀏覽器正在準備:

$(document).ready(function() { 

    $("#test"+status_id).mouseover(function(){ 
     $('.data'+status_id+'a').show(); 
    }); 

} 

很多人喜歡,(這樣的話你會經常看到)的「速記」版本:

$(function() { 

    $("#test"+status_id).mouseover(function(){ 
     $('.data'+status_id+'a').show(); 
    }); 

}