情况:尝试修改VideoJS.com以使用IE8和Youtube Chromeless API.
问题:进度条拖动不起作用(event.preventDefault()出错;根据调试,'不支持')
演示:http://alpha.dealertouch.mobi/video/demo.html
我尝试了什么:当它是IE时跳过'preventDefault',但如果我这样做,我将失去进度条的功能(向前/向后拖动/点击)
问题:解决IE8此问题的最佳方法是什么?
我正在一个网站上工作,点击某个链接会在登录面板上滑下来.我event.preventDefault()用来阻止网站重定向以及动画事件滑动面板.单击链接时,面板向下滑动,网址保持不变.
单击链接时我想要发生的是面板正常动画,但链接的href属性将显示在URL中.在这种情况下,它将是这样的:http://domain_name/#login.
这是我现在要去的代码:
$("#login_link").click(function (e) {
e.preventDefault();
$("#login").animate({ 'margin-top': 0 }, 600, 'linear');
window.location.hash = $(this).attr('href');
});
Run Code Online (Sandbox Code Playgroud)
此代码根据需要成功地将"#login"添加到URL,但它会跳过登录面板的动画.单击链接时,面板会立即显示.我想保留动画和更新的url行为.这可能吗?
看到这个jsFiddle:
http://jsfiddle.net/nathanfriend/vAcpc/9/
似乎preventDefault()方法不会阻止单击的单选按钮切换(注意该消息始终显示 "此单选按钮已被选中",无论其先前状态如何).但是,在onclick()方法完成后,单选按钮会快速恢复到其初始状态(第一次选择单选按钮除外).
似乎preventDefault()不是通过实际阻止选中单选按钮来工作,而是通过将按钮组返回到其先前状态.谁能解释这种行为?我希望能够完全阻止单选按钮被切换 - 这样我就可以准确地检查是否在其onclick()方法中检查了单选按钮.有任何想法吗?
我编写了这个绑定方法,并且在我的preventDefault()方法中遇到问题在IE中工作.回调线永远不会执行.有人可以提供帮助吗?谢谢!
var preventDefault = function (event) {
if (window.event) { window.event.returnValue = false; }
else if (event.preventDefault) { event.preventDefault(); }
else { event.returnValue = false; }
};
var bindEvent = function (ele, type, cb) {
if (window.addEventListener) {
ele.addEventListener(type, cb, false);
} else if (window.attachEvent) {
ele.attachEvent('on' + type, function () {
event.preventDefault = function () {
preventDefault(event);
}.call(this);
cb.call(ele, event); //this does not execute
});
}
};
Run Code Online (Sandbox Code Playgroud) 如果这已经被覆盖我提前道歉,但我是新手,我看到有其他类似的帖子,但没有一个帮助所以我想可能还有另一个问题.
我有一个模态弹出窗口,它在Chrome中工作正常,但在IE中不起作用.问题似乎与线路有关
{ e.preventDefault(); }
Run Code Online (Sandbox Code Playgroud)
它给出以下错误.
错误:对象不支持属性或方法'preventDefault'
就像我说我是新手一样,我已经尝试过做其他日志中的说法,只要放一个圆形或者只是删除线但没有运气所以任何人都可以帮助我.
/* prevent default behaviour on click */
var e = this.browserEvent;
var tgt = this.triggeringElement;
/*e.preventDefault();*/
{ e.preventDefault(); }
/* Trigger JQuery UI dialog */
var horizontalPadding = 30;
var verticalPadding = 30;
$('<iframe id="modalDialog" src="' + $(tgt).attr("href") + '" />').dialog({
title: "IC v RT",
autoOpen: true,
width: 1050,
height: 700,
modal: true,
close: function(event, ui) {apex.event.trigger('#P28_AFTER_MODAL','select',''); $(this).remove();},
overlay: {
opacity: 0.5,
background: "black"}
}).width(1050 - horizontalPadding).height(700 - verticalPadding);
return false;
Run Code Online (Sandbox Code Playgroud) 在基于jquery-mobile的Web应用程序中,如何阻止默认浏览器菜单显示在"点击保持"...而不是我想显示自定义对话框页面..
下面提到的是我现在的代码..
$(".task_row").bind('taphold',function(event, ui){
event.preventDefault();
$("#slide_down_menu").trigger('click');
});
Run Code Online (Sandbox Code Playgroud) 我有一个链接.当有人点击它时,我想在检查它之前检查一些条件.如果是,则false应该阻止默认操作.
$(".pager-next a.active").click(function(event) {
if (!a == 1) {
event.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
该链接应仅在a等于时才起作用1.以上代码是否正确.如果满足特定条件,a则设置为1.该链接仅在满足条件时才有效.
我最近遇到过这种情况(这里简化).只需用一个元素包装一个复选框,并在它的click事件上应用preventDefault(),然后该复选框将被取消选中.
看到这个小提琴,但这里是一个剪辑:
<div>
<input type="checkbox"/>
</div>
/* Wrapper could be any element (and any ancestor element will work) */
$('div').on('click', function(e){
e.preventDefault();
});
/* Uncomment to make the checkbox work again
$('input').on('click', function(e){
e.stopPropagation();
});
*/
Run Code Online (Sandbox Code Playgroud)
行为发生在Chrome和FF中,所以我认为这是有意的.
为什么已经在复选框上触发的click事件不会导致复选框被切换?在preventDefault对祖先好像它应该是风马牛不相及的孩子复选框的行为.似乎,为了发生复选框更改,click事件需要一直自由地冒泡到文档根目录.
这里发生了什么?
我通过AJAX获取用户ID和名称,并使用Select2搜索它们,但是我的用户已经请求能够通过按Tab键从typeahead下拉列表中进行选择,有效地将其视为按Enter键.这是我的select2声明:
$("#user-select").select2({
ajax: {
url: "/api/User",
method: "get",
data: function (params) {
return {
search: params.term
};
},
beforeSend: function () {
$(".loading-results").text("Loading...");
},
processResults: function (data) {
return {
results: data
};
},
cache: true
},
allowClear: true,
placeholder: "Enter a User ID or Name",
templateResult: function (data) {
return "(" + data.id + ") " + data.name;
},
templateSelection: function (data) {
return "(" + data.id + ") " + data.name;
}
Run Code Online (Sandbox Code Playgroud)
每当下拉列表可见时,".select2-search__field"似乎都是焦点元素,突出显示的元素将获得类"select2-results__option - highlight".
我已经尝试了一些解决方案,但似乎没有任何效果,特别是因为这个元素在下拉列表打开时出现并消失.不幸的是,我从我的尝试中丢失了代码,但它们主要包括在聚焦输入上触发Tab时执行preventDefault,然后在突出显示的元素上触发click事件或触发输入上的enter键.
我也试过调整selectOnClose选项,但是这看起来很麻烦,当我让它正常运行时会导致无限循环,更不用说根据按下的键来覆盖它.
[编辑] …
Angular2中有没有办法以某种方式阻止使用EventEmitter的事件的默认值?
我有以下场景:
import {Component, Output, EventEmitter} from 'angular2/core'
@Component({
selector: 'my-component',
template: `<button (click)="clickemitter.emit($event); onClick($event)" [style.color]="color"><ng-content></ng-content></button>`
})
export class MyComponent {
@Output clickemitter: EventEmitter<MouseEvent> = new EventEmitter();
private color: string = "black";
constructor() {
}
private onClick(event: MouseEvent): void {
if(!event.defaultPrevented) //gets called before the observers of clickemitter
this.color = "red";
else this.color = "blue";
}
}
@Component({
selector: 'my-app',
providers: [],
template: `
<my-component (clickemitter)="$event.preventDefault()">Hello Angular</my-component>
`,
directives: [MyComponent]
})
export class App {
constructor() {
}
}
Run Code Online (Sandbox Code Playgroud)
我做了一个Plunker这一点,太: …
preventdefault ×10
javascript ×6
jquery ×6
ajax ×1
angular ×1
bind ×1
checkbox ×1
conditional ×1
eventemitter ×1
html ×1
jquery-ui ×1
onclick ×1
radio-button ×1