【问题标题】:asp: jquery function works for master page items but not aspx page itemsasp:jquery 函数适用于母版页项目,但不适用于 aspx 页面项目
【发布时间】:2012-07-14 01:24:36
【问题描述】:

在 aspx 页面上,我有这样的东西:

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">   
<script type="text/javascript">
    $("li").mouseover(function () {
        $("li").css("background-color", "blue");
    });
</script>

<ul id="second"> 
<li> <a href.../a> </li>
<li> <a href.../a> </li>
<ul>

在母版页上也有一个以列表格式创建的菜单栏。因此,当我将鼠标悬停在菜单栏上时,li 背景项变为蓝色,没问题。但是当我将鼠标悬停在第二个 li 上时,什么也没有发生。我对asp不是很熟悉。我尝试了JQuery don’t work in aspx-page with Masterpage 的解决方案,我什至不确定它是否适用。

谢谢

【问题讨论】:

  • 也许只需要在 DOM 就绪后定义函数 $(document).ready(function(){ // 你的代码在这里 });
  • 尝试将您的脚本放在母版页的 head 标记中并准备好 DOM

标签: jquery asp.net master-pages


【解决方案1】:

将您的代码包装在这样的文档就绪事件中...

$(document).ready(function () {
    $("ul.second").delegate("li", "mouseover", function () {
        $("li").css("background-color", "blue");
    });
});

您还可以使用委托函数,该函数将捕获列表项上的鼠标悬停,即使它们是在您注册事件处理程序后添加的。

PS。将此 JavaScript 放在页面底部。这使您的页面呈现速度更快。

【讨论】:

  • 我一直在我的 aspx 页面上像这样使用 jQuery,它应该像 @Bart 在你的 asp:Content 中描述的那样工作。我在结束与脚本结束标记位置相关的函数的方式上也遇到了奇怪的问题,因此请检查您生成的 html 源代码以确保浏览器正确识别它
猜你喜欢
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 2022-11-30
  • 2016-01-24
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多