第二次单击时,使用JQUERY运行另一个函数
On second click run another function with JQUERY
我用JQuery
在Javascript
中编写了一个脚本,当我点击按钮时,会发生一些事情(例如alert("hello")
。我现在要做的是当我再次点击同一个按钮来运行不同的功能时。这就是我现在拥有的:
$(document).ready(function(){
$(".imgMarker").click(function() {
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0)));
});
});
我读到我可以使用toggle()方法,但我无法使其工作。
更新答案和示例:示例
$.fn.clickToggle = function(func1, func2) {
var funcs = [func1, func2];
this.data('toggleclicked', 0);
this.click(function() {
var data = $(this).data();
var tc = data.toggleclicked;
$.proxy(funcs[tc], this)();
data.toggleclicked = (tc + 1) % 2;
});
return this;
};
var addMarker = function(){
/*
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0)));
*/
alert('Add Marker!');
};
var destroyMarker = function(){
alert('Destroy Marker!');
};
$(".imgMarker").clickToggle(addMarker, destroyMarker);
本质上,我们在这里添加了一个名为clickToggle()
的新方法,它将两个函数作为参数。这将在您传递的两个函数之间切换。
您必须删除此单击函数,然后在第一次单击时将其绑定到另一个。试试这个:
$(document).ready(function(){
$(".imgMarker").click(function() {
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0)));
$(this).unbind("click");
$(this).click(otherClickFunction);
});
});
我已经写了一个计数点击按钮的小插件,你可以像一样使用它
$(document).ready(function() {
$.fn.clickCounter = function () {
return $(this).data('clicks', $(this).data('clicks') + 1 || 1) && $(this).data('clicks');
};
$(".imgMarker").click(function () {
if ($(this).clickCounter() > 1) {
console.log('do something');
}
});
});
示例
相关文章:
- 从另一个JSAppleScript运行另一个JS AppleScript时出现权限错误
- 运行“;非“;单击另一个函数中的函数仅一次
- 如何在另一个函数完成后运行
- 成功ajax:如果是200状态代码,则运行函数else另一个函数
- 为什么一个 $(document).ready(function() { 会阻止另一个运行
- 如何确保我的值已添加并存在,然后运行另一个代码jquery
- 第二次单击时,使用JQUERY运行另一个函数
- 如何只运行一个函数一次,然后运行另一个依赖于相同元素的函数
- 验证文本框&运行另一个函数javascript
- Backbone Javascript:等待一个函数完成后再运行另一个函数
- 函数中的JavaScript if语句来运行另一个函数
- 在php中运行另一个脚本
- 当运行另一个Jquery时,如何在ajax中执行mousedown
- 通过jquery运行另一个html页面上的javascript代码
- .当Ajax成功完成时,用一些jquery运行另一个函数,几乎可以工作
- 如何从HTML运行另一个程序
- 如何让Grunt在运行另一个任务之前等待一个任务完成
- 在运行另一个函数之前完成.click()函数
- 如何从longPolling运行另一个JS方法
- .split ();使一个函数运行另一个函数时出错