首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图防止默认

试图防止默认
EN

Stack Overflow用户
提问于 2015-04-14 20:28:33
回答 5查看 2.3K关注 0票数 0

这是我正在做的一个项目,我的客户网站的一个小广告弹出,它将告诉用户他们即将到来的夏令营。我只想广告显示在加载,然后用户可以选择关闭广告或点击链接到注册页面。

我试图让这段代码工作,但我的问题是,当我点击其中一个关闭按钮的广告关闭,然后页面重新加载,广告回到原来的位置。我试图找出适当的放置我的“防止默认”代码的位置,但是它要么在广告第一次出现之前就起作用了,要么在这里显示的情况下。不用谢。

我意识到我同时使用的是jQuery和JS,但我对此非常陌生,我正在根据自己的发现拼凑代码。

代码语言:javascript
运行
复制
<script type="text/javascript">
$(".close").click(function(){
$("#summercampad").addClass("hidden");
onload.preventDefault();

});

window.onload = function () {
document.getElementById("summercampad").className =
document.getElementById("summercampad").className.replace
  ( /(?:^|\s)hidden(?!\S)/g , '' )
};

</script>
<div id="summercampad" class="hidden" >
<div id="popupcontainer">
    <div id="closepopup">
        <a href="#" class="close"><img src="https://cdn6.bigcommerce.com/s-p98jqjm/product_images/uploaded_images/closebtn.png?t=1429039040" alt="close"/>     </a>
    </div>
    <div id="pic">
        <img src="https://cdn6.bigcommerce.com/s-p98jqjm/product_images/uploaded_images/popuppic.jpg?t=1429038436" alt="basketball"/>
    </div>
    <div id="popuptext">
        2015 SUMMER CAMPS<br> 
        BOYS &amp; GIRLS • ANY SKILL LEVEL<br>
        <span>SPACE LIMITED - SIGN UP NOW!</span>
    </div>
    <div id="registerbtn" >
        <a href="/camp-registration/">
        <img src="https://cdn6.bigcommerce.com/s-p98jqjm/product_images/uploaded_images/registerbtn.png?t=1429039883"/>
        </a>
    </div>
    <div id="nobtn">
        <a href="#" class="close">
        <img src="https://cdn6.bigcommerce.com/s-p98jqjm/product_images/uploaded_images/nothanksbtn.png?t=1429039884"/>
        </a>
    </div>
</div>

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-14 20:31:22

只需在末尾添加:返回false。它将阻止执行您想要的操作。

代码语言:javascript
运行
复制
<script type="text/javascript">
$(".close").click(function(){
    $("#summercampad").addClass("hidden");
    return false;
});
...

在另一篇文章中描述了一切:从jQuery单击事件返回false

也是

首先需要声明HTML,然后才需要声明jQuery。和现在一样,$(".close")返回null,因为浏览器没有解析HTML。

对您来说最好的解决方案是使用$(文档).ready()

您的代码应该是:

代码语言:javascript
运行
复制
<script type="text/javascript">
    $(document).ready(function () {
        $(".close").click(function(){
        $("#summercampad").addClass("hidden");
        return false;
    });
});
...

这样,首先加载HTML,然后jQuery绑定现有标记上的单击事件;)。

票数 0
EN

Stack Overflow用户

发布于 2015-04-14 20:32:14

代码语言:javascript
运行
复制
 <script type="text/javascript">
    $(".close").click(function(e){
    e.preventDefault();
        $("#summercampad").addClass("hidden");
        return false;
    });
   </script>
票数 1
EN

Stack Overflow用户

发布于 2015-04-14 20:35:28

看来您缺少了绑定函数中的参数。试着改变这个:

代码语言:javascript
运行
复制
$(".close").click(function(){
    $("#summercampad").addClass("hidden");
    onload.preventDefault();
});

对此:

代码语言:javascript
运行
复制
$(".close").click(function(event){
    $("#summercampad").addClass("hidden");
    event.preventDefault();
});

(资料来源:preventdefault.asp)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29636817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档