2009-06-17 84 views
1

下面的jQuery獲取包含地址html表的部分視圖。然後使用jqModal來顯示地址,並使用鼠標懸停來突出顯示地址。這在我的本地機器上正常工作。當我嘗試從服務器(Win 2008,IIS 7)運行它時,地址顯示在jqModal中,但Higlightlight無法正常工作。此外,從服務器瀏覽時,這工作正常。奇怪的jQuery問題

<script> 
$(document).ready(function() { 

    $("#Search").click(function() { 
     displayAddressList(); 
    }); 
    $('#dialog').jqm(); 

}); 


function displayAddressList() { 
    var PostCode = $("#tbSearch").val(); 
    var url = '<%= Url.Action("AddressSearch", "Addresses")%>'; 
    $.get(url, { PostCode: PostCode }, function(data) { 
    $("#dialog").html(data); 

     $('table#data_table tr').mouseover(function() { 
      $(this).addClass('selectedRow'); 
     }).mouseout(function() { 
      $(this).removeClass('selectedRow'); 
     }); 

    }); 
} 
</script> 

<style> 
    .selectedRow { 
    background-color: white; 
    cursor: pointer; 
    } 
</style> 

<div class="jqmWindow" id="dialog"> 
    <a href="#" class="jqmClose">Close</a> 
</div> 
+2

看起來像只有當主機是本地主機...... AJAX請求是否實際執行? – 2009-06-17 08:57:20

+0

那麼當它被髮送到客戶端時,<%= Url.Action(「AddressSearch」,「Addresses」)%>呈現給什麼人呢?您的應用沒有運行在現場網站上的虛擬目錄中? – Charlino 2009-06-17 10:08:44

+0

創建地址html表的部分視圖 – Danny 2009-06-17 15:52:09

回答

0

也許它不喜歡:

$('table#data_table tr') 

嘗試改變這種選擇只是:否則

$('#data_table tr') 

,嘗試使用不同的CSS屬性,也許那些特別的人沒有得到應用。當然,這可能都是的方式關閉,但它不能傷害嘗試。

+0

$('table#data_table tr')應該工作。如果沒有,這是jQuery或瀏覽器中的一個錯誤,但如果真是這樣,我會非常驚訝。 – 2009-06-17 08:58:41

1

如果您不關心Internet Explorer 6支持,則可以在CSS中實施行高亮顯示。

#data_table tr:hover { 
    background-color: white; 
    cursor: pointer; 
} 

如果您這樣做,請確保在HTML頁面的頂部有一個有效的DOCTYPE聲明。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
1

你說只有突出顯示不起作用。一般來說,你會想要使用jQuery的live函數:http://docs.jquery.com/Events/live - 它意味着在Ajax調用(或其他DOM更改)後綁定事件。您只需在$(document).ready處調用一次,而不是每次加載數據。

另一個常見的選擇是你在頁面上有多個#data_table(可能是隱藏的),jQuery只會找到第一個。

0

我會添加一些警報,以便您可以查看是否有任何事情正在發生。還有你的CSS設置爲背景:白色 - 你會發現任何變化 - 它應該是一種顏色嗎?!

喬希

1

我會DrJokepu同意:它看起來好像你的Ajax請求從本地主機的數據(因此它只是你的工作dev的機器或服務器上瀏覽時)。

您可以檢查類似Firebug(或對於IE的Fiddler)的Ajax請求以查看它們是否實際上正在製作?