天天看点

js 一些小技巧 3

(1)同时按ctrl+enter提交本表单

js 一些小技巧 3

在多行文本域增加onkeydown 事件

com.whuang.hsj.ctrlenter2submit的实现如下:

js 一些小技巧 3

<code style="display: block; padding: 0px; color: inherit; font-family: 'source code pro', monospace; font-size: inherit; border-radius: 0px; background: transparent;" class="hljs scala has-numbering">/***  

 *  

 1. @param event : textarea onkeydown event  

 2. @param formelement : textarea itself  

 */  

com.whuang.hsj.ctrlenter2submit= function (event,formelement) {  

    if(event.keycode == 13 && event.ctrlkey) {  

        var $thisform=com.whuang.hsj.getform(formelement);  

        var submitbtn=$thisform.find(":button:first");  

        submitbtn.get(0).click();  

    }  

};</code>  

js方法执行流程:先通过com.whuang.hsj.getform 方法获取textarea所在的表单,然后获取表单下的第一个按钮,最后触发按钮的onclick事件. 

注意:”:button:first” 表示第一个按钮,同理”:input:first”表示第一个表单控件(输入框,按钮,复选框等) 

(2)实现渐变地回到顶部

js 一些小技巧 3

“回到标题”的html代码如下:

js 一些小技巧 3

<a style="float: right;" class="ahref" onclick="anchorgowhere('title_loc_bbs')">回到标题</a>  

anchorgowhere是js方法,实现如下:

js 一些小技巧 3

var anchorgowhere = function (anchorname) {  

$("#subpagebbs .subcontent").animate({scrolltop: $("a[name=" + anchorname + "]").offset().top}, 1000);  

};  

说明:$(“#subpagebbs .subcontent”) 是滚动条所在的div 

jquery对象.get(0) .例如

js 一些小技巧 3

$navhrefcomment.get(0).onclick = function () {  

        bbs.addbbscomment(cardid2);  

    };  

(4)textarea字符长度限制

js 一些小技巧 3

/* 

 1. textarea字符长度限制 

ismaxlen = function(event) {  

    var obj = event.srcelement?event.srcelement:event.target;  

    var target = $("#"+obj.getattribute("id").replace(".","\\."));  

    var maxlength = target.attr("maxlength");  

    if (target.val().length > maxlength) {  

        target.blur();  

        target.val(target.val().substring(0, maxlength));  

        target.focus();  

(5)回车+ctrl实现换行

js 一些小技巧 3

 * 回车+ctrl换行 

newline = function(event) {  

     if(event.keycode == 13 && event.ctrlkey){  

         if (document.selection) {  

             var selecttext = document.selection.createrange();  

             if(selecttext){  

                 if(selecttext.text.length > 0)  

                     selecttext.text += "\r\n";  

                 else  

                     selecttext.text = "\r\n";  

                 selecttext.select();  

                 }  

         }  

         else{  

             var obj = event.srcelement?event.srcelement:event.target;  

             obj.value += "\r\n";  

             }  

     };  

(6)使遮罩层的背景图片不随滚动条移动

之前显示遮罩层时,背景图片总是随滚动条的移动而改变,如下图:

js 一些小技巧 3
js 一些小技巧 3

 这样就存在一个问题,就是内容太长时,有滚动条,而我设置的背景图片的位置在垂直和水平居中,就导致有时候,显示遮罩层,但是看不到背景图片(转圈的图片,提示等待),导致用户体验不好.

那么如何让背景图片始终在可视区域的居中位置呢?

终于找到方法了(参考http://www.cnblogs.com/wangmuxing/p/4369282.html)

使用background-attachment:fixed;属性

(7)jquery 获取javascript脚本内容

js 一些小技巧 3

<!doctype html>  

<html>  

<head lang="en">  

    <meta charset="utf-8">  

    <script type="text/javascript" src="jquery-1.11.1.js" id="scriptcontent2"></script>  

    <script type="text/javascript" id="scriptcontent">  

        var jsonp2 = function () {  

            $.ajax({  

                url: "http://localhost/cors/complex?callback=?",   

                datatype: "jsonp",  

                success: function (data) {  

                    $('#resultdiv').html(json.stringify(data));  

                }  

            });  

        };  

        function mycallback(data) {  

            alert("here: " + data.name);  

        }  

        var getscriptcontent = function (e) {  

            alert($('#scriptcontent').text());  

    </script>  

</head>  

<body>  

<input type="button" value="jquery jsonp" onclick="jsonp2()"/>   

<input type="button" value="获取脚本内容" onclick="getscriptcontent()"/>  

<div>  

    <div id="resultdiv"></div>  

</div>  

</body>  

</html>  

(8)动态设置script脚本内容

js 一些小技巧 3

var script = document.createelement('script');  

       script.type = 'text/script';  

       script.text = 'alert(123)';  

继续阅读