我的實際問題是.live()jQuery方法不起作用。jQuery .live()不起作用
這對在這裏我使用它的代碼:
jQuery.fn.sb_animateMenuItem = function()
{
var mousehoverColor = '#0089F7';
var duration = 250;
return this.each(function()
{
var originalColor = $(this).css('background-color');
$(this).live('mouseover', function()
{
this.style.cursor = 'pointer';
$(this).animate().stop();
$(this).animate(
{
backgroundColor: mousehoverColor
}, duration);
});
$(this).live('mouseout', function()
{
this.style.cursor = 'default';
$(this).animate(
{
backgroundColor: originalColor
}, duration);
});
});
};
這個文檔片斷用於我這樣另一頁:由於我的網站使用了AJAX請求
<script type="text/javascript" src="ui/js/jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/js/jquery-ui-1.8.1.custom.min.js"></script>
<script type="text/javascript" src="ui/js/color.js"></script>
<script type="text/javascript" src="engine/js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript" src="ui/js/ui.js"></script>
<script type="text/javascript">
// UI effects
$(document).ready(function()
{
$('button').sb_animateButton();
$('input').sb_animateInput();
$('.top_menu_item').sb_animateMenuItem();
$('.top_menu_item_right').sb_animateMenuItem();
$('.left_menu_item').sb_animateMenuItem();
});
</script>
我使用.live方法在第一個片段中,但是當我加載頁面時,效果不會應用到按鈕/輸入...標記。
如果我刪除.live方法並使用「正常」方式,則會應用在第一個剪切片段中定義的UI效果,但僅應用在任何AJAX請求之前加載的元素。在ajax請求之後加載的元素不受第一個片段的影響(儘管它們具有相同的選擇器)。
感謝您的幫助。
一個真正的大+1。從這個答案中學到了很多東西。對OP提供+1,以及提出問題。 – user113716 2010-06-13 12:13:14
呃...我嘗試了兩種方式,但它一直不工作。我決定以另一種方式面對問題:http://stackoverflow.com/questions/3032767/insert-html-into-a-page-with-ajax。 – siannone 2010-06-13 15:32:16
@Silvio - 什麼不工作?我提供了一個演示,演示了這個工作,你應該解釋*什麼*不起作用。當你不知道問題時,很難給出解決方案... – 2010-06-13 15:34:16