.NET中的Jquery方法没有执行

Sor*_*ami 2 .net javascript jquery visual-studio-2008

我正在运行Visual Studio 2008和.NET 3.5

我用javascript创建了一个javascript方法(window.unbeforeload),在尝试退出网站时给用户一条消息.不幸的是,显示同样的消息,每次用户点击,这不是重定向网站之外的链接时.

解决方案:让jquery处理站点内的所有链接点击.但这不起作用.

 <asp:Content ID="ContentHead" ContentPlaceHolderID="head" runat="server">

    <script type="text/javascript" src="HTML/jquery.js"></script>
    <script type="text/javascript">    
     $(document).live('click',function() {
         $("a").click(function() {
             alert("Hello world!");
         });
     });                                       
    </script> 
Run Code Online (Sandbox Code Playgroud)

//很多其他功能

    <script type="text/javascript">
    window.onbeforeunload = function() {
          return "REALLY?"
      }
</script>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

在这里,我试着点击网站内的链接创建一个警报,但没有成功.

如何在我的应用程序中使Jquery工作?

Sideinfo:我已经验证了jquery文件存在于HTML/jquery.js但是尽管如此,Visual Studio 2008会发出一个未找到文件的警告.另一个与jquery文件具有完全相同路径的.aspx页面不会发出此警告.

更新:

    <%@ Page Language="C#" MasterPageFile="~/Manage/ConceptManager.Master" AutoEventWireup="true" CodeBehind="ConceptManager.aspx.cs" Inherits="DynamicForm.Manage.ConceptManagerPage" %>

<%@ Register src="Controls/Element_MetadataEditor_FieldNode.ascx" tagname="Element_MetadataEditor_FieldNode" tagprefix="uc1" %>

<%@ Register src="Controls/Element_MetadataEditor_TemplateNode.ascx" tagname="Element_MetadataEditor_TemplateNode" tagprefix="uc3" %>

<%@ Register src="Controls/CategoryAttributes.ascx" tagname="CategoryAttributes" tagprefix="usercontrol" %>

<%@ Register Src="Controls/ConfirmDialog.ascx" TagName="DeleteConfirmDialog" TagPrefix="usercontrol" %>
<%@ Register Src="Controls/ConfirmDialog.ascx" TagName="ConfirmDialog" TagPrefix="usercontrol" %>
<%@ Register src="Controls/AddReferenceDialog.ascx" TagName="AddReferenceDialog" TagPrefix="usercontrol" %>
<%@ Register src="Controls/AddIncludeDialog.ascx" TagName="AddIncludeDialog" TagPrefix="usercontrol" %>

<%@ Register Assembly="ExtExtenders" Namespace="ExtExtenders" TagPrefix="ExtExt" %>

<asp:Content ID="ContentHead" ContentPlaceHolderID="head" runat="server">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {

        var mydomain = "mysite.com";
        var leavemessage = "Are you sure you wish to leave?";

        var filterMySitefunction = function(index) {
            return $(this).attr("href").indexOf(mydomain) > -1;
        }
        var filterOtherSitefunction = function(index) {
            return $(this).attr("href").indexOf(mydomain) == -1;
        }
        $("a").filter(filterMySitefunction).click(function() {
            window.onbeforeunload = function() { };
        });
        $("a").filter(filterOtherSitefunction).click(function() {
            window.onbeforeunload = function() {
                return leavemessage;
            };
        });
    });                                       
</script>  
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

Ric*_*gan 5

我完全不知所措.对上面的Peeter没有冒犯,但这似乎是一个过于复杂的解决方案,通过做类似的事情可以实现同样的目标

$(function($){
    $('a').not('[href*="mydomain.com"]')
          .click(function(e){
              // visiting some other domain!
          });
});
Run Code Online (Sandbox Code Playgroud)

优秀的jQuery:In Action书也建议只是检查a[href^="http://"]外部链接,这就是我坚持这样做的方式.

就个人而言(因为我对这个特殊的位有点偏执),我把两者拼凑在一起作为一种全能(以防万一有人或某事投入内部绝对URL).

$('a[href^="http://"]').not('[href*="mydomain.com"]')
                       .click(function(e){
                           // visiting some other domain!
                       });
Run Code Online (Sandbox Code Playgroud)