关于监听多次触发的问题

求助各路大神
此处有一个登录验证的小程序,里面有个登录按钮设有监听,按钮监听里有一个验证函数,第一次跑程序,验证涵数没问题但如果第一次验证失败,当第二次触发监听后,验证数就会莫名其妙的跳过去,(我想可能和验证函数第一次返回NULL有关),如过真是这样,我该怎么样解决

监听位置位于LoadActivity.class中的 bt_load.setOnclickListener()内

 //登录函数  LoadActivity
 package cn.edu.nuc.skid_menu;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.content.DialogInterface;
import java.util.List;

import cn.edu.nuc.skid_menu.sqlite_utils.utils;

/**
 * Created by Administrator on 2017/6/9.
 */

public class LoadActivity extends Activity{


    private EditText met_name;
    private EditText met_pw;
    private Button bt_load;
    private Button bt_register;

    private cn.edu.nuc.skid_menu.sqlite_utils.utils utils;
    private List list;

    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_load);
        met_name = (EditText) findViewById(R.id.et_name);
        met_pw = (EditText) findViewById(R.id.et_pw);
        bt_load = (Button) findViewById(R.id.bt_load);
        bt_register = (Button) findViewById(R.id.bt_register);
        utils = new utils(LoadActivity.this);
        //String s= utils.execDate("delete from db_user where _id = ? ",new Object[]{"wsy123"});//增删改数据
        //Log.i("wsy", s+"");
        utils.insert("wsy123","123456","male","运汽集团");//插入数据库
        // utils.db.delete("db_user","_id = ?",new String[]{"wsy"});//删除数据
        //utils.update();//更改数据

        list = utils.selectAll();
        utils.show_list(list);//显示数据库
        Log.i("wsy", "分开!");

        //String i ="wsy12345";
        //List list1 = utils.select(i);
        //utils.show_list(list1);   //显示_id为wsy12345的信息





        // list = utils.select(met_name.getText().toString());


           //!!!!!!!!就是这个监听!!!!!!!!!!!!!!!!!!
        bt_load.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i("wsy", "触发登录监听");
                String checkResult=checkInfo();
                                //!!!!!!!二次验证上面的函数checkInfo会被跳过!!!!!!!
                Log.i("wsy", "完成验证");
                list = utils.select(met_name.getText().toString());
                if(checkResult==null){
                    Intent intent=new Intent(LoadActivity.this,Main_activity.class);
                    startActivity(intent);
                    Log.i("wsy", "发送成功");
                }
                else{
                    Log.i("wsy", "发送失败");
                    AlertDialog.Builder builder=new AlertDialog.Builder(LoadActivity.this);
                    builder.setTitle("错误提示");
                    builder.setMessage(checkResult);
                    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                        met_pw.setText("");
                                        met_name.setText("");
                                    }
                            });
                            builder.create().show();
                }
            }
        });

    bt_register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent=new Intent(LoadActivity.this,RegisterActivity.class);
            startActivity(intent);

        }
    });


    }

    private String checkInfo(){
        if(met_name.getText().toString()==null||met_name.getText().toString().equals("")){
            Log.i("wsy", "用户名不能为空!");
            return "用户名不能为空";

        }
        if(met_pw.getText().toString().trim().length()<6||met_pw.getText().toString().equals("")||met_pw.getText().toString().trim().length()>15){
            Log.i("wsy", "密码长度为6-15位");
            return "密码长度为6-15位";
        }
        if(utils.select(met_name.getText().toString()).size()==0)
        {
            Log.i("wsy", "账号不存在");
            return "账号不存在";
            }
        if(!met_pw.getText().toString().trim().equals(utils.test_list(list).toString().trim()))
        { Log.i("wsy", "密码错误");
            return "密码错误";}
        Log.i("wsy", "可以登录");
        return  null;
    }
}

//数据库管理工具 utils.

package cn.edu.nuc.skid_menu.sqlite_utils;


import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.Cursor;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class utils   extends SQLiteOpenHelper {
    SQLiteDatabase db = null;
    private final static String DBNAME = "db_user";
    private final static int VERSION = 1;


    public utils(Context context) {
        super(context, DBNAME, null, VERSION);
        db = this.getReadableDatabase();
    }


    public Cursor selectCursor(String sql, String[] selectionArgs) {
        return db.rawQuery(sql, selectionArgs);
    }

    public int selectCount(String sql, String[] selectionArgs) {
        Cursor cursor = db.rawQuery(sql, selectionArgs);
        int result = cursor.getCount();
        if (cursor != null) {
            cursor.close();
        }
        return result;
    }

    public List<Map<String, Object>> selectAll() {
        Log.i("wsy", "小成 1");
        Cursor cursor = db.rawQuery("select * from db_user  limit ?,? ", new String[]{"0", "999"});
        Log.i("wsy", "小成2 ");
        return cursorToList(cursor);
    }

    public List<Map<String, Object>> select(String i) {
        Log.i("wsy", "成1");
        String[] strings = {i};
        Cursor cursor = db.query("db_user",new String[]{"_id","password","sex","school_name"},"_id =?",strings,null,null,"_id desc","0,5");
        Log.i("wsy", "成2 ");
        return cursorToList(cursor);
    }

    public List<Map<String, Object>> cursorToList(Cursor cursor) {
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        while (cursor.moveToNext()) {
            Log.i("wsy", "有数据 ");
            Map<String, Object> map = new HashMap<String, Object>();
            for (int i = 0; i < cursor.getColumnCount(); i++) {
                map.put(cursor.getColumnName(i), cursor.getString(i));
            }
            list.add(map);
        }
        return list;
    }

    public String execDate(String sql, Object[] bindArgs) {
        try {
            db.execSQL(sql, bindArgs);
            return "成功";
        } catch (Exception e) {
            return e.getMessage();
        }
    }

    public void destroy() {
        if (db != null) {
            db.close();
        }
    }


    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE IF NOT EXISTS db_user (_id VARCHAR(10) PRIMARY KEY ,password,sex,school_name)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        if (newVersion > oldVersion) {
            db.execSQL("DROP TABLE IF EXISTS db_users");
            onCreate(db);
        }

    }

    public void show_list(List list) {
        Map map = null;
        String netMode1 = null;
        String netMode2 = null;
        String netMode3 = null;
        String netMode4 = null;
        for (int i = 0; i < list.size(); i++) {
            map = (HashMap) list.get(i);

            netMode1 = (String) map.get("_id");
            if (netMode1 == null) {
                Log.i("wsy", "空了");
            } else {
                Log.i("wsy", "_id:" + netMode1);
            }
            netMode2 = (String) map.get("password");
            if (netMode2 == null) {
                Log.i("wsy", "空了");
            } else {
                Log.i("wsy", "password:" + netMode2);
            }
            netMode3 = (String) map.get("sex");
            if (netMode3 == null) {
                Log.i("wsy", "空了");
            } else {
                Log.i("wsy", "sex:" + netMode3);
            }
            netMode4 = (String) map.get("school_name");
            if (netMode4 == null) {
                Log.i("wsy", "空了");
            } else {
                Log.i("wsy", "school_name:" + netMode4);
            }
        }
    }


    public void insert(String s1,String s2,String s3,String s4) {
        ContentValues values = new ContentValues();
        values.put("_id", s1);
        values.put("password", s2);
        values.put("sex", s3);
        values.put("school_name", s4);
        long rowId = db.insert("db_user", null, values);
    }

    public void update() {
        ContentValues values = new ContentValues();
        values.put("_id", "wsy");
        values.put("password", "a123a123");
        values.put("sex", "female");
        values.put("school_name", "运气集团");
        int result = db.update("db_user", values, "_id=?", new String[]{"wsy"});
    }

    public SQLiteDatabase get_db(){
        return db;

    }

    public String test_list(List list){
        Map map = null;
        String netMode2 = null;
        map = (HashMap) list.get(0);
        netMode2 = (String) map.get("password");
        return netMode2;
    }
}

//登录成功后的界面activity
public class Main_activity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        Intent intent = getIntent();
    }
}

//登录页面   activity_load.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="cn.edu.nuc.skid_menu.LoadActivity"
    android:orientation="vertical"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="驾考通"
        android:textSize="40sp"
        android:layout_gravity="center"
        android:textColor="#00cc00"
        android:layout_marginTop="120dp"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="一考就通"
        android:textSize="25sp"
        android:layout_marginRight="15dp"
        android:layout_gravity="right"
        android:textColor="#CC0000"


        />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="账号 : "
            android:textSize="24sp"
            android:textColor="#000000"
            android:layout_marginLeft="15dp"
            />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:id="@+id/et_name"
            android:hint="请输入账号"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="5dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码 : "
            android:textSize="24sp"
            android:textColor="#000000"
            android:layout_marginLeft="15dp"
            />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:id="@+id/et_pw"
            android:hint="请输入密码"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center"
        >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            android:textColor="#000000"
            android:textSize="20sp"
            android:layout_marginTop="15dp"
            android:id="@+id/bt_load"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="注册"
            android:textColor="#000000"
            android:textSize="20sp"
            android:layout_marginTop="15dp"
            android:id="@+id/bt_register"/>



    </LinearLayout>
</LinearLayout>


//登录成功后的界面     Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#6699ff"
    android:gravity="center"
    android:orientation="vertical">

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="王绍阳,欢迎您"
       android:textSize="30sp"
       />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="顺序刷题"
        android:layout_marginTop="40dp"
        android:textSize="30sp"
        android:id="@+id/bt_question"


        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="错题攻克"
        android:layout_marginTop="20dp"
        android:textSize="30sp"
        android:id="@+id/bt_dif_question"

        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改信息"
        android:layout_marginTop="20dp"
        android:textSize="30sp"
        android:id="@+id/bt_revise"
        />



</LinearLayout>



4个回答

不好意思打扰各位了,把监听当中的 String checkResult=checkInfo(); 和 list = utils.select(met_name.getText().toString());交换位置就可以了

把完整项目代码发出来测试一下可能好找点。你还用了那么多工具类和其它逻辑,怎么找!

用debug调试下看是哪一步出问题就可以了

//!!!!!!!二次验证上面的函数checkInfo会被跳过!!!!!!!

这个不是很明白!!,函数没有执行?????

qq_35329954
qq_35329954 我也不太清楚,感觉第二次执行顺序很怪
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Vue的this.$root.Bus.$on事件被多次触发、多次监听的问题
前端vue项目中,各个组件(非父子关系也可)之间可以通过Bus进行事件通信。 main.js中: import Vue from 'vue' const Bus = new Vue(); const app = new Vue({ el: '#app', data: {Bus}, router, components: {App}, template: '&amp;lt;App/...
前端优化:数据监听触发多次请求
场景复现:在列表中使用监听值刷新请求,多个值的情况下,每一个改变值都会触发getList方法,从而导致的多次请求的出现 代码复现 computed: { watchendDate() { return this.params.startDate; }, watchPointType() { return this.params.poin...
FileSystemWatcher多次触发问题
还是这个恼人的问题,在Google上搜了很多,结果搜出来的都一个样的("...可以参考log4net的做法。通过一个计时器,在文件事件处理中让计时器延迟一段时间之后,再执行加载新的配置文件操作。这样可以避免对文件做一次操作触发了多个更改事件,而多次加载配置文件。...")rn只是我水平太有限,看不懂这些,想问一下有没有谁可以提供简单一点、实效一点的解决办法?(要源代码)谢谢了!~rnrn主要的问题是出在changed那个事件上,renamed、deleted都可以的,created也有多次触发,不过暂时不用它
按钮多次触发问题
在开发中,我们经常会写倒计时的功能,在解决按钮避免在短时间内多次点击的时候,   1.我们可以设置UIButton的enable属性,为NO,或者YES   2.还可以利用两个方法达到同样的效果,下面为代码. 可以很好地控制,几秒钟之后按钮点击才能执行方法. - (void)btnClick{       [[self class] cancelPreviousPerformRequest...
android关于电话监听多次调用的问题
rn当响铃或挂断的时候会输出两次,特别是挂断的时候。这是为什么了?怎样解决?求大神指教rnrnPhoneStateListener listener=new PhoneStateListener()rn @Overridern public void onCallStateChanged(int state, String incomingNumber) rn //state 当前状态 incomingNumber,貌似没有去电的APIrn try rn super.onCallStateChanged(state, incomingNumber);rn rn switch(state)rn case TelephonyManager.CALL_STATE_IDLE:rn System.out.println("挂断");rn Log.e(LOGTAG, "listener hand up===================");rn break;rn case TelephonyManager.CALL_STATE_OFFHOOK:rn System.out.println("接听");rn Log.e(LOGTAG, "listener 3==================");rn break;rn case TelephonyManager.CALL_STATE_RINGING:rn System.out.println("响铃:来电号码"+incomingNumber);rn Log.e(LOGTAG, "listener 2==================");rn //输出来电号码rn break;rn rn catch (Exception e) rn // TODO Auto-generated catch blockrn Log.e(LOGTAG, e.getMessage()+" e.getMessage()");rn e.printStackTrace();rn rn rn ;rnrn
关于按钮被快速触发多次的问题!
在有存盘的页面,很快的多次按下存盘按钮时会存储多条记录!rnrn不知各位是如何控制这个的呢?希望大家多多指教!
关于mouseout 触发多次的问题 求教
[img=https://img-bbs.csdn.net/upload/201705/27/1495856781_682674.png][/img]rnrn我的菜单栏 用UL和一个 DIV(平行四方形的框)制作的 但是我把他们放在同级里 就会多次触发mouseoutrnHTML代码如下rn rn rn 首页 rn 天文资讯rn 最新活动rn 场馆一览rn 留言板rn 联系我们rn rn rn
关于OnReceive()消息的多次触发的问题
小弟目前在做一个客户端向阅读器发送命令的测试rn当客户端和阅读器连接后rn如果客户端需要向阅读器连续发送多条命令,而且每条命令的发送都必须要等到阅读器回复后才继续自动发送下条命令rn我用的是MFC的CSOCKET发送的,不知道怎么样才能使得命令都能够按照命令->回复->下条命令的顺序发送。rnrn起初我是想在阅读器回复后,在OnReceive()函数中再向消息队列中发消息触发发送下条命令的,可是好象不成功样的。rn不知道我这样处理对不对!rnrnrn请大侠们指点下啊!!
JQuery的on事件多次触发问题
Jquery的on事件多次触发问题 问题描述: 代码如下: &amp;amp;amp;amp;lt;!-- 结构 --&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;div class=&amp;amp;amp;quot;content&amp;amp;amp;quot;&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;div id='result'&amp;amp;amp;amp;gt;&amp;amp;amp;amp;lt;/
Application_Start 被多次触发
我做的一个系统,正常运行两个多小时后发现全局变量变为初始值了,Application_Start事件可能被服务器再次触发了,请问各位高手是怎么回事啊,有没有解决的办法?代码如下:rnvoid Application_Start(object sender, EventArgs e)rn rn //在应用程序启动时运行的代码rn Application["DefaultSurveyId"] = 1;rn Application["YulanSurveyId"] = 1;rn Application["SurveyType"] = -1;rn Application["SurveyState_Exp"] = -1;rn Application["SurveyState_Nor"] = -1;rn Application["Time_Exp"] = -1;rn Application["Time_Nor"] = -1;rn Application["Time_Exp_end"] = -1;rn Application["Time_Nor_end"] = -1;rn Application["VerifyExpert"] = new List();rn //ExcuteVerifies();rn rnrn void ExcuteVerifies()rn rn while (true)rn rn ThreadStart ts = new ThreadStart(ClearVeryfies);rn Thread t = new Thread(ts);rn t.Start();rn Thread.Sleep(new TimeSpan(1, 0, 0, 0));rn rn rnrn void ClearVeryfies()rn rn List l = (List)Application["VerifyExpert"];rn foreach (string s in l)rn rn if (!VeryfyString(s))rn rn l.Remove(s);rn rn rn Application["VerifyExpert"] = l;rn rnrn bool VeryfyString(string s)rn rn DateTime dt = DateTime.Parse(s.Substring(s.Length - 6));rn if (DateTime.Now - dt < TimeSpan.FromDays(7))rn return true;rn elsern return false;rn rnrn void Application_End(object sender, EventArgs e)rn rn //在应用程序关闭时运行的代码rnrn rnrn void Application_Error(object sender, EventArgs e)rn rn //在出现未处理的错误时运行的代码rnrn rnrn void Session_Start(object sender, EventArgs e)rn rn //在新会话启动时运行的代码rnrn rnrn void Session_End(object sender, EventArgs e)rn rn //在会话结束时运行的代码。 rn // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为rn // InProc 时,才会引发 Session_End 事件。如果会话模式 rn //设置为 StateServer 或 SQLServer,则不会引发该事件。rnrn rn
多次触发点击click事件
出现的问题是:第一次点击click,执行一次行为;第二次点击click,执行两次行为;第三次点击click,执行三次行为;依次类推。。 希望实现的是:每点击一次click,执行一次行为 解决方法: 先解绑click,再绑定click var n=0; $(&quot;#rolls&quot;).unbind(&quot;click&quot;).click(function(){ n++; $(&quot;#&quot;+i...
window.onresize 多次触发的解决方法
关于 onresize 事件触发次数,不同浏览器不同,safari, opera, firefox 都是一次(分别只用了一个版本测试,都是较新的);  //ie6 在 quirk 下触发 2 次,标准下 3 次;ie7,8 在 quirk 和 standard 都是两次。  复制代码代码如下: window.onresize = function(){  console.log
Socket 多次触发OnRead
[code=delphi]rn//结构体IdentInforn TIdentInfo = recordrn Ident: Integer;rn Action: Integer;rn Size: Integer;rn end;rn[/code]rn[code=delphi]rn//发送端rnfunction Send(Socket: TCustomWinSocket; Action: Word; Mem: TMemoryStream): Boolean; overload;rnvarrn dataInfo: TIdentInfo;rnbegin rn if(mem.Size=0 )thenrn exit;rn dataInfo.Ident := IDENT;rn dataInfo.Action := Action;rn dataInfo.Size := mem.Size;rn Socket.SendBuf(dataInfo, SizeOf(dataInfo));rn Socket.SendBuf(mem.Memory^, mem.Size);rnend;rn[/code]rn[code=delphi]rn//接受端rnprocedure OnClientRead(Sender: TObject; Socket: TCustomWinSocket);rnvarrn dataInfo: TIdentInfo;rn mem: TMemoryStream;rnbeginrnrn FillChar(dataInfo, SizeOf(dataInfo), 0);rn Socket.ReceiveBuf(dataInfo, SizeOf(dataInfo));rn mem := TMemoryStream.Create;rn if (dataInfo.Ident = Ident) thenrn beginrn mem.Size := dataInfo.Size;rn FillChar(mem.Memory^, mem.Size, #0);rn mmo1.Lines.Add('mem Size1:' + inttostr(mem.Size));rn Socket.ReceiveBuf(mem.memory^, mem.Size);rn //中间处理过程rn end;rnend;rn[/code]rn---------------------------------------------rnrn Socket.SendBuf(dataInfo, SizeOf(dataInfo));rn Socket.SendBuf(mem.Memory^, mem.Size);rn当客户端发送2组数据给服务端rn第一组结构体TIdentInfo大小是12字节rn第二组是数据流TMemoryStream大于12字节rnrn现在问题是服务端接收总是以12字节每次的大小用TIdentInfo结构体把所有数据接收进去了rn而后面的mem.Memory^根本接收不到数据rn但有时候又可以接收到rnrn[img=https://img-bbs.csdn.net/upload/201403/04/1393899113_815044.jpg][/img]rn这个是抓包工具抓包看到的结果,rn调试的时候可以看到 rn FillChar(dataInfo, SizeOf(dataInfo), 0);rn Socket.ReceiveBuf(dataInfo, SizeOf(dataInfo));rn被触发了3次
window.onresize 触发多次解决方法
最近在做一个界面 由于用到iframe 当主页面onresize的时候需要对子页面的布局重新调整 发现onresize时间会重复调用多次 随后发现可以通过setTimeout来延迟调用要执行的方法。 具体使用如下: [code=&quot;html&quot;] var resizeTimer = null; function doResize(){ document.frames['conten...
定时任务触发多次
再服务器端定时任务出发了多次 原因: 配置问价加载了多次 ssm配置文件中 在 applicationContext-datasource.xml 、applicationContext.xml、springmvc.xml、和dispacher-servlet.xml中都配置了标签 扫描了4次 所以定时任务会出发4次 解决方案: 干掉除了springmvc.xml中的标签 只扫描一次
click事件多次触发 jquery
前段时间写了一个项目,点击按钮触发click事件,调用接口,后来发现点击一下按钮,接口调用了好几次,就很郁闷。发现是我click事件里嵌套了click才出现此现象。 a.click(function(){ b.click(function(){ console.log("b"); }); }); 每点击一次a,就会绑定一次b;假设在点击b之前点了2次a,则在点击b时,出现3次conso
vue watch 监听触发
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt; &amp;lt;div id
如何解决动画多次触发问题
CSS动画之animation再次触发与防止多次触发 JS如何监听动画结束 zepto
EventBus 3.0 onEvent 多次调用触发的问题
在换了新的 EventBus 3.x 系列后,遇到了onEvent多次触发的问题,换了 onMessageEvent 后似乎没有这个问题,比较费解,不是靠编译时注解去弄的么?有空再去源码看看吧...
js遭遇了事件多次触发问题
         最近和同事2个人,1个月搞出来个项目管理系统,好在是公司同事内部使用。项目是搞出来了,bug也很多。这真是诠释了 我真是在写bug啊。不过马上奔40的高龄了,能弄出个东西来,自己也蛮开心的。毕竟年纪越来越大,感觉自己生产的软件 数量肯定也是会越来越少了。毕竟写出来的软件,就像自己的孩子一样。要倾注一番心血的。不知道自己还有多少心血可以流了。         我老婆老说,我们...
如何触发多次OnComm事件
如:rnrnrn if(m_Com.GetPortOpen())rn m_Com.SetPortOpen(FALSE);rnrn m_Com.SetCommPort(2); rn if( !m_Com.GetPortOpen())rn m_Com.SetPortOpen(TRUE);//打开串口rn elsern AfxMessageBox("cannot open serial port");rnrn m_Com.SetSettings(m_strSettings); rn m_Com.SetRThreshold(1); rnrn m_Com.SetInputMode(1);rn m_Com.SetInputLen(0);rn m_Com.GetInput();rn m_Com.SetOutput(COleVariant("hihihihihi"));rnrnrnrn这段结束就会进入OnComm(),但把"hihihihihi"的发完就结束了,如何让OnComm()多次运行,(不要用SetTimer())
点击触发多次change事件
顺序是,第一次点击上传按钮,会触发一次change事件,第二次点击上传按钮,会触发两次change事件,第三次点击上传按钮,会触发三次change事件,以此类推。。但是希望实现的是每点击一次,只触发一次change事件,解决方法如下: 在点击的时候,将change()事件解绑 $(&quot;#in&quot;).click(); $(&quot;#in&quot;).off(&quot;change&quot;); $(&quot;#in&quot;).change(...
关于手机端滚动加载更多多次触发事件问题
在做手机端滚动加载更多时,因为滚动是一个持续过程,所以就导致了会一次或很短时间内触发多次ajax请求,  可以设置一个全局变量控制.// bool变量, 用于阻止滚动到底部连续触发多次  let isBottom = trueconst scrollHeight = element.currentTarget.scrollHeight const scrollTop = element.curre...
关于按钮多次触发出现白块的问题
做的一个播放器,按钮是贴的位图22*22像素的。当我多次快速触发按钮事件时候,按钮区域出现白块闪烁一下。并且有时会影响到另外的按钮出现白块闪烁。rnrn请问大虾们为什么会出现这种情况,如何解决?rnrn
echarts点击事件多次触发解决
最近写vue项目时用到echarts做个小功能,点击饼状图的每一块,生成新的柱状图,同时要给柱状图绑定点击事件,弹出每一条柱状数据详情。 做完后发现一个问题,第一次点击柱状图时点击事件只触发一次,点击饼状图第二次生成柱状图后,柱状图的点击事件就会触发两次,以此类推……最后越来越多。 代码如下: // 画饼状图 drawPie() { let myCharts = Echar...
防止click 事件多次触发
1.点击后添加属性 pointer-events: none; 2.增加监听器,监听点击事件,监听到一次点击事件后移除该监听事件。
scroll事件在移动端多次触发
在做分页的时候,使用scroll事件监听到滚动条滑动到底部时,页面发送ajax请求数据。但是在iphone上,页面滑动到底部时会发送两次请求。 并没有解决还是记录一下:$(window).scroll(function() { var scrolltop=$(window).scrollTop(); var istrue=true; if(scrollTop>=$(
如何多次触发WM_TIMER消息
我在做毕业设计,请各位高手帮帮忙!rn就是通过一个按钮能不能多次利用SetTimer触发WM_TIMER消息,即就是 每按一次按钮能调用其OnTimer函数,这个怎么实现?
关于多次弹出窗口问题
是这样的,我在程序里面要调用另外一个 exe 文件,我用CreateProcess()打开以后,我就将在打开的exe里面执行东西,这个时候我要在本来的程序里面判断我所打开的这个EXE文件时候已经关闭,因为这个EXE文件是别人的,它将独占我的一个文件,在一段时间内如果没有关闭的话,我就要弹出一个对话框提醒用户是否还继续等待/rn问题1:因为我打开的exe文件这个时候处于最顶上,是激活状态,这个时候我再弹出一个对话框,如何使它在exe上面?也就是说在最上面,如果在下面的话,用户根本不知道弹出提示了.rn问题2:用CreateProcess()函数打开一个exe文件,我如何判断用户时候已经关闭了我打开的exe文件?
关于多次排序的问题?
数据库表中是这样的:rn10100 部门一rn10101 部门二rn10102 部门三rn10200 机构一rn10201 机构二rn10202 机构三rn1000000001 局长一rn1000000002 局长二rn1000000003 局长三rnrn第一列为整型rn我想在web页面中显示如下的顺序rn1000000001 局长一rn1000000002 局长二rn1000000003 局长三rn10100 部门一rn10101 部门二rn10102 部门三rn10200 机构一rn10201 机构二rn10202 机构三rn应该怎样写代码?用什么函数?(既按第一列的第三位排序分组又按整体排序)
关于WAS多次安装的问题。
由于某些原因,经常需要重装WAS4。可我发现在一台机器上多次安装WAS的话,成功的机会很小。有时连初始化WAS40数据库都没有,有时就直接安装不成功!!!rnrn环境:rn1)已按卸载程序卸载WAS及IHS;rn2)WAS安装的目录每次都不一样;rn3)管理数据库每次都改名;rn4)........(都是正版)!!!rnrn
关于多次connect的问题
最近在弄一个远控,但是在启动具体的控制线程的时候遇到了问题。rn控制端监听1989端口,肉鸡连接后。rn控制端send指令请求肉鸡新建连接,启动cmdshellrnrn肉鸡connect控制端1989端口,但是出现错误 rn在一个非法套接字上尝试了一个操作,即connect失败rnrn具体代码如下rn[code=C/C++] winSocket winSck;rn winSocket sck2;rn COMMAND_MSG cmd_msg = 0;rn LOGININFO logon_tag = 0;rn logon_tag.m_chkIsServer = 0x87654321;rnrn winSck.Create();rnrn winSck.Connect(REMOTE_IP,REMOTE_PORT);rn SendHelloMsg(winSck.m_hSocket);rnrn while(1)rn rn int nRet = recv(winSck.m_hSocket,(char*)&cmd_msg, sizeof(COMMAND_MSG), 0);rn if (nRet != sizeof(COMMAND_MSG))rn continue;rn //TRACE("msgid:%d",cmd_msg.msg_id);rn switch (cmd_msg.msg_id)rn rn case CMD_CMDSHELL:rn logon_tag.m_COMMAND = CMD_CMDSHELL;rn if (sck2.Connect(REMOTE_IP,REMOTE_PORT) != ERR_SUCCESS)rn rn continue;rn rn sck2.Send((char*)&logon_tag, sizeof(LOGININFO));rn //执行子线程rn break;rn rn rn[/code]
jQuery按键事件keyup
1.代码 $(document).keyup(function(event){ if(event.keyCode ==13){ //这里填写你要做的事件 //TODO } }); 2.其他的按键代码
关于监听的问题?
监听服务器无法启动专用的进程是怎么回事阿?rn
关于actionListener监听的问题
actionListener是用来监听的事件的,用在按钮上面很容易理解:rn点击按钮触发事件,但是如果是用于监听文本框内容的话,如何操作就会触发事件呢?rn这是小弟最近在看马士兵老师的聊天系统教程的时候遇到的问题,代码如下:rn[code=Java]rnimport java.awt.*;rnimport java.awt.event.*;rnrnpublic class ChatClient extends Frame rnrn TextField tfTxt = new TextField();rnrn TextArea taContent = new TextArea();rnrn public static void main(String[] args) rn new ChatClient().launchFrame(); rn rnrn public void launchFrame() rn setLocation(400, 300);rn this.setSize(300, 300);rn add(tfTxt, BorderLayout.SOUTH);rn add(taContent, BorderLayout.NORTH);rn pack();rn this.addWindowListener(new WindowAdapter() rnrn @Overridern public void windowClosing(WindowEvent arg0) rn System.exit(0);rn rn rn );rn tfTxt.addActionListener(new TFListener());rn setVisible(true);rn rn rn private class TFListener implements ActionListener rnrn public void actionPerformed(ActionEvent e) rn String s = tfTxt.getText().trim();rn taContent.setText(s);rn tfTxt.setText("");rn rn rn rnrnrn[/code]rn请各位大大看看,为什么在文本框中按下“回车”就触发监听了,难道文本框监听特指回车事件吗?
关于Session监听的问题。
我的目的是服务器重启,或session失效后。用户单击某个链接则转到登录页面。rn现在已经有Filter,在用户单击链接时判断session中的用户名。 rn现在有个小问题,就是服务器重启前如何清除session? 我想在服务器启动时与重启前做一些操作。rn请各位给些资料谢谢。
关于监听自动关闭的问题
我用的oracle9i 安装成功, 用pl/sql sqlplus 操作数据库都没有问题, 但是在 myeclipse 中编写一个访问数据库的应用程序在编译的时候,或者Eclipse本身联结数据库的时候会弹出一个对话框 :提示 TNSLSNR.EXE 遇到问题需要关闭 随后数据库监听服务自动关闭。 rn 请大家看看这个问题怎么解决 谢谢
关于监听listen的问题
问什么我的程序第一次监听可以,在客户端不断开的情况下,我再监听另一个为什么就不可以了呢?报错:操作完成。进行中没有分块操作。这是为什么啊?!!rnrnPrivate Sub Command1_Click()rnIf Check1.Value = 0 And Check2.Value = 0 And Check3.Value = 0 And Check4.Value = 0 And Check5.Value = 0 And Check6.Value = 0 And Check7.Value = 0 And Check8.Value = 0 Thenrnview.Text = view.Text & "请选择监听通道" & Chr(13) & Chr(10)rnElseIf view.Text = view.Text Or view.Text = view.Text & "正在监听,请稍候......" & Chr(13) & Chr(10) Thenrnview.Text = view.Text & "正在监听,请稍候......" & Chr(13) & Chr(10)rn[color=#FF0000]Winsockserver.LocalPort = 1001[/color]rn[color=#FF0000]Winsockserver.Listen[/color]rnEnd IfrnEnd Subrn第二次监听,就在红字地方报错。请哪位高手指点一下。谢谢了
关于键盘的监听的问题
现在有一个应用程序,应用程序启动以后,首先会弹出一个“欢迎界面”rnrn我希望用户在键盘输入了一个特定的字符串以后,如:"Paul"(不包括引号)rnrn在欢迎界面中弹出一个信息框。rnrnNote: 不是在 欢迎界面 中的文本框之类的控件中输入字符串。这里要监视用户的键盘输入。rnrn我想用线程解决,但是一启动,系统的CPU就100%。rnrnrn请高手不惜赐教,这里先谢谢了。 越具体越好!rn
关于鼠标监听的问题
我在做一个聊天程序,已经用Jlist加DefaultListModel做出了类似qq那样好友面板,及好友列表,我想下一步用鼠标双击面板好友列表某人姓名是弹出qq那样“与xx聊天中”的对话框,请问该怎么写监听事件?怎么得到被点击的好友列表中的用户信息??谢谢了。。
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符