- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试做一个简单的按钮翻转,在 vclicked 时更改它的图标,但真的不明白为什么 vclick 事件只触发一次,有人可以解释一下吗?如果我使用“click”或将事件直接附加到按钮元素,我会得到相同的结果。
JSFiddle 位于:http://jsfiddle.net/w7quoyn4/
$('#btnAddToCart').on('vclick', function () {
console.log("btnAddToCart vclick event fired");
if ($(this).attr('data-icon', "plus")) {
$(this).attr('data-icon', "minus").button().button("refresh");
} else {
$(this).attr('data-icon', "plus").button().button("refresh");
}
});
提前致谢:)
最佳答案
您的代码中有两个问题。
首先,条件表达式 $(this).attr('data-icon', "plus")
调用 attr() 的 setter 形式,它将始终返回调用它的 jQuery 对象。由于对象在 bool 上下文中始终为 true
,因此您的 else
分支永远不会被采用。
要解决这个问题,您可以调用 attr()
的 getter 形式并比较结果:
if ($(this).attr("data-icon") == "plus") {
// ...
}
话又说回来,对 button()
的调用是问题的核心。适当的使用方法是 buttonMarkup() ,但自 1.4 版起已弃用(并将在 1.5 中删除)。
实际的解决方案是自己添加和删除适当的类,如下所示:
$(document).on("vclick", "#btnAddToCart", function () {
console.log("btnAddToCart vclick event fired");
$(this).toggleClass("ui-icon-plus ui-icon-minus");
});
您可以在 this updated fiddle 中看到结果.
关于javascript - JQuery Mobile vclick 事件仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234898/
我正在尝试做一个简单的按钮翻转,在 vclicked 时更改它的图标,但真的不明白为什么 vclick 事件只触发一次,有人可以解释一下吗?如果我使用“click”或将事件直接附加到按钮元素,我会得到
我正在开发 JQM 应用程序,我试图让一个复选框在按下时显示额外的选项。我很习惯使用 $().on('vclick') 来捕获我的事件,但它似乎不适用于复选框。知道为什么吗? fiddle 在这里:h
我正在创建一个应该可以在移动设备和 PC 上运行的 jQuery 移动应用程序。我正在使用 jQuery Finger 插件 ( http://ngryman.sh/jquery.finger/ )
这就是我在网络浏览器中模拟点击的方式: $(document).ready(function() { $("button").click(); }); 但是我怎样才能模拟 vclick 呢?原因是
我在一个项目中使用 jQuery mobile,并且需要在打开弹出窗口时对 vclick 事件使用react。我的问题是 vclick 事件只是在弹出窗口内触发,而不是在整个页面上触发。您可以在这里找
我正在使用 jquery mobile 和 cordova 开发一个应用程序,除了在 ios 设备中 vlcick 事件被触发两次外,它都运行良好,但在不同的页面中,我的意思是,我触发一个 vclic
我想用“vclick”类将 vclick 绑定(bind)到我的链接,以便响应非常快。我该怎么做 Header go t
有没有办法用 jQuery mobile 中的 vclick 事件替换所有点击事件? 到目前为止,我发现的唯一解决方案是注册一个 vclick 事件,如下所示 $('a').bind("vclick"
在android/iOS设备上用过jqm的人都知道,300ms的延迟会让人头疼。值得庆幸的是,有多种解决方案——使用 fastclick.js、“vlick”方法和其他选项。 但是,当您应用此解决方案
超短版: 基于 jQuerymobile 的 html5 web 应用程序上的元素不会直接响应 iPad 上的 vclick。相反,它们会默默地滚动到页面顶部,并在屏幕同一区域下的任何内容上触发 vc
我是一名优秀的程序员,十分优秀!