発生したいくつかの問題と解決策

序文

私たちの研究と仕事では、常にいくつかの問題に直面します。要約して記録しないと、すぐに忘れてしまいます、、、

1. jqueryajaxの変数に値を割り当てることができない理由と解決策

JQueryのAjaxを使用してバックグラウンドからデータを抽出し、それをグローバル変数に割り当てたいのですが、割り当てることができません。なぜですか?

理由は実際には非常に単純です。使用するAjaxは非同期操作です。つまり、データを割り当てるときにデータが抽出されていないため、もちろん割り当てることはできません。同期操作に変更するだけです。

解決:

次のように非同期を同期に変更し、非同期を追加します:false、割り当てることができます

               var user = null
               $.ajax({
    
    
                    url: "/user/findByName",
                    type: "get",
                    dataType: "json",
                    async: false,
                    data: {
    
    
                        name:name
                    },
                    success:function (data){
    
    
                        if (data.data.user!=null){
    
    
                            user = data.data.user
                        }
                    }
                })

2.日付を指定された形式に変換します

次のメソッドをDateプロトタイプに追加します

Date.prototype.format = function(fmt) {
    
     
     var o = {
    
     
        "M+" : this.getMonth()+1,                 //月份 
        "d+" : this.getDate(),                    //日 
        "h+" : this.getHours(),                   //小时 
        "m+" : this.getMinutes(),                 //分 
        "s+" : this.getSeconds(),                 //秒 
        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
        "S"  : this.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
    
    
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    }
     for(var k in o) {
    
    
        if(new RegExp("("+ k +")").test(fmt)){
    
    
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt; 
}  

追加後、このように呼び出すことができます

    var time = new Date().format("yyyy-MM-dd hh:mm:ss");
    console.log(time1);

ここに画像の説明を挿入します
このように呼ぶこともできます

    var time1 = new Date().format("yyyy-MM-dd");
    console.log(time1);

ここに画像の説明を挿入します

3.jQueryが追加に追加を使用するノードの無効なソリューションはイベントを追加できません

新しく追加された要素のイベントが失敗することがあります。その理由は、イベントを初期化するときに、これらの新しく追加された要素がないため、イベントをバインドできないためです。

これを行うには、イベントをバインドするためのjQueryのonメソッドが必要です。対応するイベントを直接追加することはできません。例としてクリックイベントを取り上げます。

<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
    
    
  $("div").on("click","p",function(){
    
    
    $(this).slideToggle();
  });
  $("button").click(function(){
    
    
    $("<p>This is a new paragraph.</p>").insertAfter("button");
  });
});
</script>
</head>
<body>

<div style="background-color:yellow">
<p>This is a paragraph.</p>
<p>Click any p element to make it disappear. Including this one.</p>
<button>Insert a new p element after this button</button>
</div>

</body>
</html>

おすすめ

転載: blog.csdn.net/weixin_43520670/article/details/112549582