相关疑难解决方法(0)

jQuery preventDefault()不起作用

我有以下代码:

$(document).ready(function(){

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

});
Run Code Online (Sandbox Code Playgroud)

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

并在将代码修改为:

$(document).ready(function(){

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

});
Run Code Online (Sandbox Code Playgroud)

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

完整代码如下:

$(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;

    });

});
Run Code Online (Sandbox Code Playgroud)

而HTML结构是:

<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" …
Run Code Online (Sandbox Code Playgroud)

jquery event-handling javascript-events

27
推荐指数
2
解决办法
12万
查看次数

preventDefault对焦点事件不起作用

我正在尝试设计一个表单,如果它有某个类,则用户不应该能够与任何输入进行交互.由于各种原因,我想避免使用"禁用"属性.我试图阻止焦点事件的默认值,它不起作用.我在最新版本的Firefox,Chrome和Android中对此进行了测试.我尝试了各种事件组合,例如"点击更改touchstart focus focusin".我试过把"返回假"; 在处理程序中.有谁知道为什么会发生这种情况以及如何使其发挥作用?

<!DOCTYPE html>
<html><head>
<title>input test</title>
</head>
<body>
<form class="disabled">
  <input type="text">
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(".disabled :input").bind("focus", function(e) {
  e.preventDefault();
});
</script>
</body></html>
Run Code Online (Sandbox Code Playgroud)

您可以在http://jsfiddle.net/54Xka/上看到一个示例

编辑:这将主要用于移动浏览器的网站.我打算在显示模式对话框时禁用输入.模态对话框使用我自己的代码实现.显示和隐藏div是非常简单的事情.

编辑2:这就是我现在拥有的:

$(".disabled :input").live({
  focus: function() {
    $(this).blur();
  },
  change: function(e) {
    e.preventDefault();
  }
});
Run Code Online (Sandbox Code Playgroud)

它有一些小的美学问题,但它的工作原理.当我有更多时间时,我可以尝试使用透明gif或类似于jQuery UI对话框小部件的jfriend00的想法,或者实际上使用jQuery UI对话框小部件来实现对话框.

javascript jquery

2
推荐指数
3
解决办法
9379
查看次数