首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >未触发jQuery preventDefault()

未触发jQuery preventDefault()
EN

Stack Overflow用户
提问于 2011-04-11 03:21:40
回答 4查看 144.7K关注 0票数 32

我有以下代码:

代码语言:javascript
复制
$(document).ready(function(){

    $("div.subtab_left li.notebook a").click(function(event) {
    event.preventDefault();
    return false;   
    });

});

但当我单击元素时..它不会阻止默认操作..为什么?

在将代码修改为:

代码语言:javascript
复制
$(document).ready(function(){

    $("div.subtab_left li.notebook a").click(function() {
    e.preventDefault();
    alert("asdasdad");
    return false;   
    });

});

它会停止默认操作,但不会发出警报。我在jQuery文档上找不到任何答案。

完整的代码如下:

代码语言:javascript
复制
$(document).ready(function(){

$('#tabs div.tab').hide();
$('#tabs div.tab:first').show();
$('#tabs ul li:first').addClass('active');

$('#tabs ul li a').click(function(){
$('#tabs ul li').removeClass('active');
$(this).parent().addClass('active');
var currentTab = $(this).attr('href');
$('#tabs div.tab').hide();
$(currentTab).show();
return false;
});

    $("div.subtab_left li.notebook a").click(function(e) {
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();

    alert("asdasdad");
    return false;

    });

});

HTML结构是:

代码语言:javascript
复制
<div id="tabs">
<ul id="nav">
<li><a id="tab1" href="#tab-1"></a></li>
<li><a id="tab2" href="#tab-2"></a></li>
<li><a id="tab3" href="#tab-3"></a></li>
<li><a id="tab4" href="#tab-4"></a></li>
</ul>

<div class="tab" id="tab-1">
        <script type="text/javascript">$(document).ready(function(){$("ul.produse li").hover(function () {
        $("ul.produse li").removeClass('active');$(this).addClass('active');}, function () {$(this).removeClass('active');});});
    </script>

    <div class="subtab_left"> 
        <ul>
            <li class="notebook"><a href="#">1</a></li>
            <li class="netbook"><a href="#">2</a></li>      
            <li class="allinone"><a href="#">2</a></li> 
            <li class="desktop"><a href="#">2</a></li> 
            <li class="procesoare"><a href="#">2</a></li> 
            <li class="placi_video"><a href="#">2</a></li>    
            <li class="hdd_desktop"><a href="#">2</a></li>
            <li class="tv_plasma"><a href="#">2</a></li>
            <li class="tv_lcd"><a href="#">2</a></li>
            <li class="telefoane_mobile last_item"><a href="#">2</a></li>
        </ul>
    </div>
EN

回答 4

Stack Overflow用户

发布于 2011-04-11 03:28:52

试试这个:

代码语言:javascript
复制
   $("div.subtab_left li.notebook a").click(function(e) {
    e.preventDefault();
    return false;   
    });
票数 7
EN

Stack Overflow用户

发布于 2016-10-25 15:31:45

如果e.preventDefault();不工作,则必须改用e.stopImmediatePropagation();

有关更多信息,请访问:What's the difference between event.stopPropagation and event.preventDefault?

代码语言:javascript
复制
$("div.subtab_left li.notebook a").click(function(e) {
    e.stopImmediatePropagation();
    return false;
});
票数 3
EN

Stack Overflow用户

发布于 2011-04-11 03:25:58

试试这个:

代码语言:javascript
复制
$("div.subtab_left li.notebook a").click(function(e) {
    e.preventDefault();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5614099

复制
相关文章

相似问题

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