click事件的参数可以变化吗?

问题描述

现有这样的jquery click事件:$(document).ready(function() { $curtainopen = false; $(".rightcurtain").click(function(){ $(this).blur(); if ($curtainopen == false){ $(this).stop().animate({top: '0px' }, {queue:false, duration:350, easing:'easeOutBounce'}); $(".rightcurtain").stop().animate({width:'60px'}, 5000 ); //这里的“60px”现在是固定值$curtainopen = true; }else{$(this).stop().animate({top: '-40px' }, {queue:false, duration:350, easing:'easeOutBounce'}); $(".rightcurtain").stop().animate({width:'82%'}, 5000 );//这里的“82%”现在是固定值$curtainopen = false; } return false; }); });//asker:www.yuanshi88.com现在有不同的rightcurtain层,都需要调用这个click事件,但上面的60px和82%不是固定的。而是根据不同的层传递不同的参数,请问要怎么写?

解决方案

<!DOCTYPE HTML><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><script type="text/javascript" src="jquery.js"></script><style>.rightcurtain{border: 1px solid black;}</style></head><script type="text/javascript">$(function(){$curtainopen = false; $(".rightcurtain").click(function(){ $(this).blur(); if ($curtainopen == false){ $(this).stop().animate({top: '0px' }, {queue:false, duration:350, easing:'swing'}); $(".rightcurtain").stop().animate({width:$(this).attr('data-width-on')}, 5000 ); //这里的“60px”现在是固定值 $curtainopen = true; }else{ $(this).stop().animate({top: '-40px' }, {queue:false, duration:350, easing:'swing'}); $(".rightcurtain").stop().animate({width:$(this).attr('data-width-off')}, 5000 );//这里的“82%”现在是固定值 $curtainopen = false; } return false; }); });</script><body><div class="rightcurtain" data-width-on="60px">1</div><div class="rightcurtain" data-width-off="82%">2</div></body></html>
解决方案二:
蛋疼得很,老发错code。。不能修改不给力啊。。<!DOCTYPE HTML><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><script type="text/javascript" src="jquery.js"></script><style>.rightcurtain{border: 1px solid black;}</style></head><script type="text/javascript">$(function(){$curtainopen = false; $(".rightcurtain").click(function(){ $(this).blur(); if ($curtainopen == false){ $(this).stop().animate({top: '0px' }, {queue:false, duration:350, easing:'swing'}); $(".rightcurtain").stop().animate({width:$(this).attr('data-width-on')}, 5000 ); //这里的“60px”现在是固定值 $curtainopen = true; }else{ $(this).stop().animate({top: '-40px' }, {queue:false, duration:350, easing:'swing'}); $(".rightcurtain").stop().animate({width:$(this).attr('data-width-off')}, 5000 );//这里的“82%”现在是固定值 $curtainopen = false; } return false; }); });</script><body><div class="rightcurtain" data-width-on="60px" data-width-off="82%">1</div><div class="rightcurtain" data-width-on="100px" data-width-off="50%">2</div></body></html>
解决方案三:
这里提供一个思路,给每个rightcurtain层绑定一些数据,click处理函数里面再取出来。<!DOCTYPE HTML><html lang="en"><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><script type="text/javascript" src="jquery.js"></script><style>.rightcurtain{border: 1px solid black;}</style></head><script type="text/javascript">$(function(){$curtainopen = false; $(".rightcurtain").click(function(){ $(this).blur(); if ($curtainopen == false){ alert(1);$(this).stop().animate({top: '0px' }, {queue:false, duration:350, easing:'swing'}); $(".rightcurtain").stop().animate({width:$(this).attr('data-width-on')}, 5000 ); //这里的“60px”现在是固定值 $curtainopen = true; }else{ console.log(21);$(this).stop().animate({top: '-40px' }, {queue:false, duration:350, easing:'swing'}); console.log(22);$(".rightcurtain").stop().animate({width:$(this).attr('data-width-off')}, 5000 );//这里的“82%”现在是固定值 console.log(23);$curtainopen = false; } return false; }); });</script><body><div class="rightcurtain" data-width-on="60px" data-width-off="82%">1</div><div class="rightcurtain" data-width-on="100px" data-width-off="50%">2</div></body></html>
解决方案四:
function(参数){ if(参数){}else{}}

时间: 2024-08-30 05:13:11

click事件的参数可以变化吗?的相关文章

关于javaScript注册click事件传递参数的不成功问题_javascript技巧

最近这半年作为一个java 程序员,我写的javaScript代码都快比java代码多了,前段时间是给某银行做一个柜员管控系统,在柜员授权这一块功能上,由于柜员的授权需要考虑各方面的因素,比如机构权限.柜员类型权限.岗位权限,业务权限等等,并且要对这些权限要做多次的交集或者并集处理,页面上不得不用许多的javascript来进行控制.造成了这一功能模块的实现上javaScript代码比java代码负责的情况. 而现在又要给某银行开发一个保管箱管理系统,其核心功能块保管箱座管理以及保管箱管理,为实

jQuery中click事件的定义和用法_jquery

本文实例讲述了jQuery中click事件的定义和用法.分享给大家供大家参考.具体分析如下: 当鼠标指针在匹配元素上方,然后按下并松开鼠标左键或者调用click()方法都会触发click事件. click()方法也可以绑定事件处理方法. 语法结构一: 触发click事件. 复制代码 代码如下: $(selector).click() 语法结构二: 为click事件绑定事件处理方法. 复制代码 代码如下: $(selector).click(data,function) 参数列表: 参数 描述 d

大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素

原文:大叔也说Xamarin~Android篇~ListView里的Click事件并获取本行的其它元素 我原创,我贡献,我是仓储大叔 本篇大叔原创,本着对技术的热爱去研究它,把成果分享给国人!大叔始终相信一句话:你只有选择一个感兴趣的工作,你才能更好的发挥你的潜力,而这一切都建立在你不断研究,不断钻研的前提下. Xamarin文章在网上比较少,而ListView相关的信息更好,有限的那么几个还都说的不清楚,只是告诉大家如何去完成按钮的事件,而在事件里,如何获取当前行的其它元素信息则没有说明,在网

动态-jquery2.0 追加到的html的input绑定click事件

问题描述 jquery2.0 追加到的html的input绑定click事件 jquery2.0后,在页面加载的事件里,动态绑定事件则是用到on方法.大家看一下以下代码段: $(function () { var tstr = """"; tstr += ""<tr><td><input type='text' ></td>""; tstr += ""<

windows form button 单机事件传递参数

问题描述 如图用这个方法参数不能是有参数的方法么... 解决方案 解决方案二:不是提示了错误的吗,这里只能输入方法名称,不能输入参数解决方案三:你这是调用事件啊?自己去写个方法试试解决方案四:看你这里,是想调用这个按钮的text属性?你直接用Buttonbtn1=senderasButton;获取这个触发事件的按钮,然后再使用他的text属性不就可以了?解决方案五:如果想调用事件,是newEventHandler(buton1_click)解决方案六:这个事件一般是不需要额外传参的,因为Even

android全局监控click事件的四种方式(小结)

本文主要给大家分享如何在全局上去监听 click 点击事件,并做些通用处理或是拦截.使用场景可能就是具体的全局防快速重复点击,或是通用打点分析上报,用户行为监控等.以下将以四种不同的思路和实现方式去监控全局的点击操作,由简单到复杂逐一讲解. 方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用 抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下: public abstract class CustClickListener implements View.OnCli

click事件-c# MouseDown和Click事件

问题描述 c# MouseDown和Click事件 为什么我在MouseDown上打了断点也在Click打了断点,运行完MouseDown却没有跳到Click事件中去?为什么?不是执行完MouseDown就会执行Click吗?谢谢!!! 解决方案 可以直接调用picturebox1_click(this new EventArgs()); 解决方案二: 执行了mousedown不执行click你可以加上button.performclick 解决方案三: 这完全是两个事件,click是mouse

click事件执行两次-复选框单击按钮执行为什么会两次

问题描述 复选框单击按钮执行为什么会两次 $(".icheckbox_square-green").click(function(){ alert(2); console.log($(this).hasClass("checked")); if($(this).hasClass("checked")){ $(this).removeClass("checked"); }else{ $(this).addClass("

JQ中click事件在ie上无效,火狐,谷歌,360都正常

问题描述 JQ中click事件在ie上无效,火狐,谷歌,360都正常 $('input:radio').bind("click", function () { // alert("11"); var cs = $(this).attr('class').toString(); var a = $(this).attr('id').toString(); var c = cs.substring(0, 4); // alert("22"); if