簡體   English   中英

為什么我的jQuery腳本只執行一次?

[英]Why my jQuery script executes just once?

我的jQuery UI datepicker有問題。 我有這個代碼:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script> <script> jQuery(document).ready(function($) { $('#datepickerFrom').datepicker({ dateFormat: 'yy-m-d', inline: true, onSelect: function(dateText, inst) { var date = $(this).datepicker('getDate'), day = date.getDate(), month = date.getMonth() + 1, year = date.getFullYear(); var url = $('#reservation').attr('href'); url = url.replace('05&', day + '&'); $('#reservation').attr('href', url); var url2 = $('#reservation').attr('href'); url2 = url2.replace('12', month); $('#reservation').attr('href', url2); var url3 = $('#reservation').attr('href'); url3 = url3.replace('2016', year); $('#reservation').attr('href', url3); } }); $('#datepickerTo').datepicker({ dateFormat: 'yy-m-d', inline: true, onSelect: function(dateText, inst) { var date = $(this).datepicker('getDate'), day = date.getDate(), month = date.getMonth() + 1, year = date.getFullYear(); var url4 = $('#reservation').attr('href'); url4 = url4.replace('=2016', '=' + year); $('#reservation').attr('href', url4); var url5 = $('#reservation').attr('href'); url5 = url5.replace('13', +month); $('#reservation').attr('href', url5); var url6 = $('#reservation').attr('href'); url6 = url6.replace('09', day); $('#reservation').attr('href', url6); } }); }); </script> <p>Date arrivée : <input type="text" id="datepickerFrom"> </p> <p>Date départ : <input type="text" id="datepickerTo"> </p> <a id="reservation" class="et_pb_button et_pb_button_0 et_pb_module et_pb_bg_layout_light" href="https://mywebsite.com/book?shs&chkin=2016-12-05&chkout=2016-13-09&step=1">Réservez</a> 

當我單擊一個日期(datepickerTo和datepickerFrom)時,它將更新我的href鏈接,但只有一次。 當我更改日期時,腳本不會執行。

由於您搜索並替換了初始值,因此僅在第一次時有效。 檢查您的以下代碼:

var url = $('#reservation').attr('href');
url = url.replace('05&', day + '&');
$('#reservation').attr('href', url);
var url2 = $('#reservation').attr('href');
url2 = url2.replace('12', month);
$('#reservation').attr('href', url2);
var url3 = $('#reservation').attr('href');
url3 = url3.replace('2016', year);
$('#reservation').attr('href', url3);

它基本上替換了給定日期的'05',給定月份的'12'和給定年份的'2016'。 當用戶選擇其他日期時,此代碼找不到任何可替換為該新日期的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM