【问题标题】:jQuery: image doesn't load when using a asp.net masterpagejQuery:使用 asp.net 母版页时不加载图像
【发布时间】:2012-08-02 00:32:40
【问题描述】:

我被困在这个问题上,这很奇怪。

首先,当我将它放在一个空白的 .aspx 页面上时,它可以完美运行。鼠标悬停时,会弹出警报消息,然后图像变为蓝色。

<script type="text/javascript" src="../../Scripts/SelectCanvas.js"></script>
<asp:Image ID="imageMain" runat="server" ClientIDMode="Static" Height="300px" 
    Width="300px" />

(jquery 代码在 SelectCanvas.js 中)

$("#imageMain").hover(
function () {
    alert("main");
    $("#imageMain").prop("src", "../../images/selectCanvas/blue.gif");
});

我将相同的图像控件放在使用 masterPage 的 .aspx 文件中。两个 .aspx 文件都在同一个目录中,并且都引用同一个 jQuery 文件。但是,在鼠标悬停时,会弹出警报消息,但图像不会变成蓝色...... ???

我在这上面花了 1/2 天,对这个怪癖不知所措...非常感谢您提供提示...谢谢。

【问题讨论】:

    标签: jquery image hover master-pages contentplaceholder


    【解决方案1】:

    这是$(el).attr("",""); 不是$(el).prop("","");!

    你应该使用这个代码

    $("#imageMain").hover(
    function () {
        alert("main");
        $("#imageMain").attr("src", "../../images/selectCanvas/blue.gif");
    });
    

    jquery 中没有任何.prop() 方法。您可以使用 chrome 的检查元素工具并查看错误以找出错误所在!

    【讨论】:

      【解决方案2】:

      @ahmadali: .prop() 工作...我把它留在我的代码中,它工作正常...

      解决方案:

      这很耗时,而且发现起来有点痛苦……哈哈……

      我更改了虚拟路径(单击解决方案资源管理器中的网站/项目名称,虚拟路径位于属性框中)。

      VS默认使用项目名:/myProject

      我把它改成了:/


      因此,为什么会出现警报消息(jQuery 正在工作)但找不到图像是有道理的。这是因为虚拟路径搞砸了图像的路径。

      我仍然不明白为什么这是一个问题(在使用 MasterPage 时),而在不使用 MasterPage 时却不是问题。但在这一点上,我很高兴能克服这个障碍...... ;-x

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多