- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
在我的应用中,我使用了 Google Material Light
库。
而且我不想检查我的输入(直到某些逻辑正确),这就是我添加这样的指令的原因:
app.directive('updLink', function () {
return {
restrict: 'EA',
link: function(scope, element) {
element.bind('click', function(evt) {
evt = evt || window.event;
evt.preventDefault();
evt.stopPropagation();
evt.returnValue = false;
return false;
});
}
};
});
和我的 html:
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="123">
<input type="checkbox" id="123" class="mdl-checkbox__input" ng-model="user" upd-link>
</label>
为什么阻止此指令在 IE10+
中不起作用?
复选框正在检查(
值(value)正在改变...
是否可以停止对该元素的任何更改和检查?
最佳答案
如果您只是对如何执行此操作感兴趣,请跳到最后。如果您想知道为什么会遇到这些麻烦,请继续阅读!
值得注意的是,您看到此消息的原因是此处的事件顺序在 IE 中与其他浏览器不同。
基本上,在 Chrome 中(我假设是 FF),在调用 onclick 函数后发生将复选框更改为视觉上“已选中”的图形更新。然而在 IE 中,图形更改首先完成,然后 然后 调用 onclick 事件,这就是为什么你的 preventDefault()
和 stopPropogation()
调用无所事事——这时马已经逃跑了。您可以通过在 evt = evt || 之前的绑定(bind)函数的开头添加警报来亲眼看到这一点window.event
:在 Chrome 中该框仍未选中,在 IE 中已经太晚了。
这里有点复杂。使用 ng-disabled
及其同类产品只是一个选项,如果您对单击复选框时不会触发操作感到高兴,我认为这不是您想要的。
这样做的结果是,我认为您无法采取任何措施来阻止在 IE 中选中复选框的复选框元素上触发的实际点击事件。如果您想停止选中该框,但单击该复选框的操作会导致某些事情发生,您将需要:
选项 1 有点棘手且容易出错。我在 SetCapture 上取得了一些成功但这有点不一致。值得庆幸的是,选项 2 提供了一个更简单的解决方案。
不要拦截点击,不要停止传播,只需自己选中复选框,以便点击事件中的第二个“选中”再次取消选中。最终结果是您的框对用户保持未选中状态,您可以在点击事件后触发任何您想要的功能:
element.bind('focusin', function() {
this.checked=true;
});
focusin
在元素即将获得焦点(即被单击)时被调用。它并不完美,就好像用户在复选框上点击它会选中它一样,但我发现使用点击事件对我不起作用。可能有更好的事件可供使用,或者您可能知道使点击事件起作用的方法。最坏的情况是,如果我们当前按下了 Tab 键,您总是可以让函数退出而没有任何效果。
我已经在 IE11 和 Chrome 中试过了,两者似乎都能按预期工作。
关于javascript - 禁用复选框( Material 灯)检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36078053/
我需要根据需要动态设置文本区域,但它不想正常工作。 JQuery 会自行检查,但无法检查是否已检查。但是当您在第二个单选框内单击时,始终需要文本区域。我尝试了很多次让它工作,但它仍然有问题。我添加了“
我需要在 Django 中进行 API 调用(某种形式),作为我们所需的自定义身份验证系统的一部分。用户名和密码通过 SSL 发送到特定 URL(对这些参数使用 GET),响应应该是 HTTP 200
我将在我的可移植 C 代码中使用 #warning 来生成编译时警告。但并非所有平台都支持 #warning。有什么方法可以找到该平台是否支持 #warning。 #ifdef warning
我编写了一个函数来检查某个数字是否存在于某个区间内。停止搜索的最佳方法是什么?这个: for (i = a; i <= b; i++) { fi = f(i); if (fi == c) {
我想知道在 c 中是否有一种方法可以检查,例如在 for 函数中,如果变量等于或不等于某些字符,而不必每次都重复进行相等性检查。如果我没记错的话,以这种方式检查相等性是不正确的: if (a == (
我有如下日志功能 void log_error(char * file_name, int line_num, int err_code) { printf("%s:%d:%s\n", fil
使用 ssh-keygen 生成的 key 对在 macOS 上可以有不同的格式。 macOS 可读的标准 PEM ASN.1 对象 SecKey API 带有文本标题的 PEM OpenSSH ke
我正在尝试编写一个 excel if 语句。我不熟悉使用 Excel 具有的所有额外功能。我正在使用一个名为 importXML() 的函数.我正在尝试检查我正在使用的函数是否生成“#VALUE!”错
有没有办法检查是否没有 AIO 写入给定文件?我在我的 Unix 类(class)上制作了一个项目,该项目将是一个上下文无关(基于 UDP)的国际象棋服务器,并且所有数据都必须存储在文件中。应用程序将
我有一个如下所示的函数: public Status execute() { Status status = doSomething(); if (status != Stat
我正在使用 Composer,我不希望 PhpStorm 在 vendor 文件夹上运行任何错误检查或检查,因为它对 vendor/中的某些代码显示误报composer/autoload_static
Chapel 的一个很好的特性是它区分了数组的域和它的分布。检查两个数组是否具有相同的域和分布(通常想要的)的最佳方法是什么? 我能看到的最好的方法是检查 D1==D2和 D1.dist==D2.di
在我的 JavaScript 函数中,我为所有输入、文本区域和选择字段提供实际值作为 initial_value: $('input, textarea, select').each(function
我正在编写一个分解为几个简单函数的 PHP 类。在构造函数中,它调用另一个名为 processFile 的函数。该函数调用 5 个私有(private)函数并进行检查。如果检查失败,它会将消息分配给
这个问题已经有答案了: How to detect if user it trying to open a link in a new tab? (2 个回答) 已关闭 7 年前。 我认为 JavaS
我正在浏览我们的代码库并看到很多这样的测试: declare @row_id int = ... declare @row_attribute string select @row_attribu
我正在声明一个用作比较的函数。我的问题是: 为什么条件充当语句? 为什么第 4 行可以工作,而第 5 行却不行? 我知道这段代码不切实际且未使用,但为什么编译器允许这种语法? 谷歌没有找到答案。但话又
到目前为止,我有一个带有空文本字段的 PHP Kontaktform,并使用以下命令检查了所需的字段: $name = check_input($_POST['name'], "请输入姓名。"); 现
目前,我能想到的合理检查的唯一方法没有臃肿的逻辑: if ( $value > 0 ) { // Okay } else { // Not Okay } 有没有更好的办法? 最佳答案
我正在尝试运行一个脚本,如果 i 存在(意味着存在 i 值,任何值)或其他部分,我希望运行其中的一部分如果i没有值就运行,有人可以启发我吗? 我说的是 for 循环,比如 for (var i=0;
我是一名优秀的程序员,十分优秀!