zoukankan      html  css  js  c++  java
  • 即时点选的菜单

    昨天应某同事的要求,给他设计的后台增加了个小功能,

    通过点击下拉菜单给相应的表单赋值,如果是已经选取的选项,则点击后在表单区域删掉相应项目。

    点此查看DEMO:

     其中主要要注意的有两点:

    第一,被点选赋值的输入框具有了readonly属性,这样就只能通过js赋值了,防止出现不必要的输入结果
     <input type="text" name="" value="" id="tofill" readonly="readonly" /> 

    第二,选中的值再点选是取消的功能,在输入框中采用replace方法替换掉相应字符串即可:

    tfl.val( tfl.val().replace(txt,""));

     完整的JS代码如下:

     $(function(){

        var tfl=$("#tofill");
        
    var sids=[];//保存id们的数组
        var timr=false;
        
        tfl.one(
    "focus",function(){
            $(
    this).val(" ");                      
        })
        .focus(
    function(){
            
    var x=$(this).offset().left;
            
    var y=$(this).offset().top;
            $(
    "#ftip").css({ "left":x, "top":y+24+"px"}).show();
            })
        
        
        
        $(
    "#ftip li").bind("mouseover",function(){
            
    var _li=$(this);
            
    if(_li.children("ul").length){
                _li.children(
    "ul").show();
                }
            
    if(!window.XMLHttpRequest)    _li.find("label").addClass("hov");
            
            })
        .bind(
    "mouseleave",function(){
            
    var _li=$(this);                        
            _li.children(
    "ul").hide();    
            
    if(!window.XMLHttpRequest)    _li.find("label").removeClass("hov");
            
            })
        .find(
    "label")
            .click(
    function(e){
            
    var tar=$(e.target);
            
    if(!window.XMLHttpRequest)    tar.find("input").click();        
            tar.toggleClass(
    "seled");
            
    var txt=" "+ tar.text();
            
    if(tar.hasClass("seled")){
                tfl.val( tfl.val() 
    +txt  );
                }
    else{
                    tfl.val( tfl.val().replace(txt,
    ""));
                    }
            })
            
        
    //鼠标移到其他元素 弹出菜单隐藏 赋值    
        $("input, table, td ,input, span").mouseover(function(){
            
    var tip=$("#ftip");
            sids.length
    =0;                           
            tip.find(
    "label").each(function(){
                
    if($(this).hasClass("seled")){
                    sids.push( $(
    this).attr("id") );
                    }                                
                })
            tip.hide();    
            
    //alert(sids);
            })
        
    //end $(fn);
    })
  • 相关阅读:
    vs2008生成的各种文件
    spider_keeper
    scrapyd 参考(https://www.jianshu.com/p/2a189127901a)
    Django之ORM操作
    ES6 快速入门
    vue 数据(data)赋值问题
    vue嵌套路由-query传递参数(三)
    Vue页面加载时,触发某个函数的方法
    vue从一个页面跳转到另一个页面并携带参数
    单选框radio总结(获取值、设置默认选中值、样式)
  • 原文地址:https://www.cnblogs.com/trance/p/1768229.html
Copyright © 2011-2022 走看看