2009-06-17 89 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请求以查看它们是否实际上正在制作?