这些方法用于注册行为,以便在用户与浏览器交互时生效,并进一步操纵这些注册的行为。
我一直在努力解决一个问题,我正在解决下一个问题: 我有 2 个日期选择器: 交货日期选择器: 我一直在努力解决一个问题,我正在解决下一个问题: 我有 2 个日期选择器: 交货日期选择器: <div class="input-group date form_datetime times" id="date_entrega"> <input type="text" placeholder="Fecha de entrega" size="16" readonly class="form-control" ng-model="reserva.fechasalida" name="date_fecha_entrega"/> <span class="input-group-btn"> <button class="btn default date-set" type="button"> <i class="fa fa-calendar"></i> </button> </span> </div> 并返回日期选择器: <div class="input-group date form_datetime times" id="date_devolucion"> <input type="text" placeholder="Fecha de devolución" size="16" readonly class="form-control" ng-model="reserva.fechaentrada" name="date_fecha_devolucion" ng-disabled="cobroOFacturaAlquiler"/> <span class="input-group-btn"> <button class="btn default date-set" type="button" ng-disabled="cobroOFacturaAlquiler"> <i class="fa fa-calendar"></i> </button> </span> </div> 然后在 Controller.js 中,我有这个: function getDaysClosedFromLocation(locationId) { LocationDaysService.getPeriodsDaysClosedFromLocation( locationId, function (response) { if (response.success) { $scope.periodDelivery = response.data; $scope.periodReturn = response.data; $("#date_entrega") .datepicker({ language: "es", format: "dd/mm/yyyy", autoclose: true, todayHighlight: true, orientation: "left", beforeShowDay: beforeShowDayDatePickerDelivery, }) .on("changeDate", function (ev) { $scope.configuracionCambioFechaHora("date_entrega"); }); $("#date_devolucion") .datepicker({ language: "es", format: "dd/mm/yyyy", autoclose: true, todayHighlight: true, orientation: "left", beforeShowDay: beforeShowDayDatePickerReturn, }) .on("changeDate", function (ev) { $scope.configuracionCambioFechaHora("date_devolucion"); }); } }, ); } function beforeShowDayDatePickerDelivery(date) { return beforeShowDay(date, $scope.periodDelivery); } function beforeShowDayDatePickerReturn(date) { return beforeShowDay(date, $scope.periodReturn); } function beforeShowDay(date, periods) { let day = date.getDay(); // 0 (Sunday) ... 6 (Saturday) for (let i = 0; i < periods.length; i++) { let period = periods[i]; if (date >= period.start && date <= period.end) { if (period.daysToDisable.includes(day)) { return false; // Disable this specific date } } } return true; // Enable all other dates } 此功能用于阻止日历上的特定日期和时间段,效果非常好。但是,当我更改位置时,#date_devolucion 会立即正确更新,但 #date_entrega 不会。它仅在我切换月份然后返回时更新。没有可见的控制台错误,所以我不认为这是代码中的逻辑错误。最有可能的是 AngularJS 更新问题。 我尝试了各种方法,例如在重新创建之前使用销毁功能进行销毁,使用日期选择器的刷新方法,或者确保仅在它们不存在时才创建它们,但这些都不起作用。 有谁知道为什么会发生这种情况以及如何解决它? 提前致谢! 我找到了解决方法: $scope.updateDatePicker = function () { setTimeout(function () { $("#date_entrega").datepicker("update"); $("#date_devolucion").datepicker("update"); }, 0); }; 然后在getDaysClosedFromLocation最后调用它! 我不知道这是否是一个好的解决方案,但它解决了我的问题!
我使用一个空框架来处理伪异步表单提交。对于那些不熟悉该技术的人,其想法是在表单的目标中引用框架的名称属性
有一个烦人的网站,它会阻止使用 而不是 来“在新选项卡中打开”的尝试。我使用 jQuery 编写了一个书签,... 有一个烦人的网站,它通过使用 <div onclick=> 而不是 <a href=> 来阻止“在新选项卡中打开”的尝试。我使用 jQuery 编写了一个书签,它创建了一个包装器 <a> 标签,并将其插入到其内容周围的 <div> 中。 如何删除原来的 onclick 处理程序? 尚未提及: $('#myId')[0].onclick = null; // remove the inline onclick() event 未经测试,但是... $("selector").removeAttr("onclick"); 我想你已经尝试过了 $("selector").unbind("click"); 在某些情况下,将 onclick 设置为 null 不起作用,但这应该始终有效: document.getElementById("myId").setAttribute("onclick", ""); element.removeAttribute('onclick'); 就是这样。 实际上删除了监听器。 其他方法则不然——它仍然有效。 请参阅开发工具。截图如下。 留下失效的监听器通常没什么大不了的,但如果你有很多这样的监听器,它们会浪费CPU,并且你的页面或应用程序的性能会下降。 而且,它仍然像某种孤儿太监一样在你的代码中活着,这有点丑陋。 有点惊讶这个问题已经存在了近 15 年了,但从来没有一个正确的答案......尽管最后一个有正确的想法,除了“未经测试”的答案哈哈。 把这个扔在那里,因为我确信有人遇到过这个问题,试图真正回答这个问题,正确地,如果没有真正正确地回答,可能会导致问题。 消除影响并不等同于消除原因。 有时还不够。 使用这个: 不是这些:
我想在通过ajax调用动态创建的元素上绑定一个事件。 某些元素已经存在,并且在页面加载时会与它们绑定一个事件。但是当新元素创建后...
我正在寻找一种方法来列出由Javascript添加到某个元素的所有事件。我知道 getEventListeners 在开发工具中可用,但在脚本中不可用。 我知道使用 jQuery,我可以...
我正在寻找一种方法来列出由Javascript添加到某个元素的所有事件。我知道 getEventListeners 在开发工具中可用,但在脚本中不可用。 我知道使用 jQuery,我可以...
我尝试实现一个有 5 个复选框的简单网站。 如果用户单击“全部”复选框,则所有其他复选框将被选中或取消选中,具体取决于“Al...
我有一个使用 jQuery 提交搜索的 Web 表单。表单本身不会触发提交事件,因为我捕获了该事件并将其删除(这是一个更大、更复杂的表单的一部分,我
如何使用 jQuery 使页面上响应单击的所有内容也响应 Enter 和空格键?
作为一名辅助功能顾问,我经常遇到的一件事是,控件在单击鼠标时起作用,但在 Enter 或空格键上不起作用。有很多关于如何向特定添加关键功能的示例
描述 我有一个包含主题和布局选项的屏幕外元素。另外,我有一个复选框滑块元素,允许显示屏幕外元素。我正在使用 jquery 来...
例如我有一些图像源。 我在新的 chrome 选项卡中打开此页面。 在页面上,我有在 DOMContentLoaded 事件上运行的脚本: document.addEventListener('DOMContentLoaded', function() ...
添加与类或文档中每个锚点的 HREF 属性等效的 onMouseDown 属性
我在获取 onMouseDown 函数时遇到问题,该函数获取每个链接并复制页面中相应锚标记的原始 HREF 属性,并在按下事件时加载 URL。 我们打电话吧...
我正在尝试保存表单 onkeyup 操作。我是 jQuery 新手。 这可能吗? 我很感激任何帮助。 编辑1: 保存表单意味着保存到服务器。有没有办法增加0.2秒的延迟。
我之前见过这个问题并得到了回答,但在尝试了几种建议的解决方案后,我仍然没有任何运气。 我有四个按钮(分别带有 ID 的“第一个、上一个、下一个、最后一个...
我想添加用户在选定的选择多个输入的文本字段中输入的文本作为选项,并自动选择它,所有这一切当选项不存在时,如果选项 ex...
有时用户将事件绑定在 $('body') 上,有时绑定在 $(document) 上 $(document).on('点击', someAction); $('body').on('点击', someAction); 有什么理由更喜欢其中一种吗?
我正在尝试使用 jQuery 和一些用于更改事件的 jQuery 操作来实现 ajax。我的代码: $this->Js->get('#PermenantDistrict')->event('change', $this->Js->alert('你好世界!...
ready() 工作,on('ready') 不工作,为什么?
我尝试在代码中使用“on”但失败了。我尝试的代码是这样的: </...</desc> <question vote="3"> <p>我尝试在代码中使用“on”,但失败了。我尝试的代码是这样的:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code><html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> function clickHandler(e) { alert('Click!'); } $(document).on('ready', function() { $('#click_me').on('click', clickHandler); }) </script> </head> <body> <input id="click_me" type="button" value="click me" /> </body> </html></code></pre> </div> </div> <p></p> <p>虽然我可以用下面的代码替换这个代码。我仍然想知道为什么我的第一个带有事件 <pre><code>on</code></pre> 的代码不起作用。</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code><html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script type="text/javascript"> function clickHandler(e) { alert('Click!'); } $(document).ready(function() { $('#click_me').click(clickHandler); }) </script> </head> <body> <input id="click_me" type="button" value="click me" /> </body> </html></code></pre> </div> </div> <p></p> </question> <answer tick="true" vote="10"> <p>来自 <a href="http://api.jquery.com/ready/" rel="nofollow noreferrer"><pre><code>ready()</code></pre></a> 的文档,强调我的:</p> <blockquote> <p>还有 <pre><code>$(document).on("ready", handler)</code></pre>,从 jQuery 1.8 开始已弃用,并且 <em><strong>在 jQuery 3.0</strong></em> 中被删除。请注意,如果 DOM 在附加此事件之前准备就绪,则不会执行处理程序。</p> </blockquote> </answer> <answer tick="false" vote="3"> <p>发生这种情况是因为 <pre><code>ready</code></pre> 不是事件(<em>不在 jQuery 或 html 中</em>)。它是 jQuery 创建的一个函数,用于确定文档的状态。所以不要混淆这两件事。</p> <p>使用就绪状态只有两种方法。通过 <pre><code>ready</code></pre> 函数,或者通过简写,基本相同的是:</p> <pre><code>$(document).ready(function() { // ... }); $(function() { // ... }); </code></pre> </answer> <answer tick="false" vote="2"> <p>下面提到的第一个代码不是有效的 jquery。</p> <pre><code>$(document).on('ready', function() { </code></pre> <p>请使用这个代替这个。</p> <pre><code>$(function(){ }); //Or $(document).ready(function() { }); </code></pre> </answer> </body></html>
Javascript OnClick 按钮触发 WordPress 上的预订覆盖
我使用 ACF 作为我们的登陆页面模板,我们有 50 个位置页面,全部具有相同的设计,除了这个预订按钮问题之外,一切都运行良好。 目前预订按钮是cli...
我正在开发一个删除会话cookie的功能 这是源代码: window.onload = 函数() { /* $.cookie('!lithiumSSO:tomtom.sta...</desc> <question vote="0"> <p>我正在开发一个删除会话cookie的功能</p> <p>这是源代码:</p> <pre><code><script language="javascript"> window.onload = function () { /* $.cookie('!lithiumSSO:tomtom.stage', null); $.cookie('LiSESSIONID', null);*/ delete_cookie('LiSESSIONID'); delete_cookie('!lithiumSSO:tomtom.stage'); }; function delete_cookie ( cookie_name ) { var cookie_date = new Date ( ); // current date & time cookie_date.setTime ( cookie_date.getTime() - 1 ); document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString(); alert('name:' +cookie_name); jQuery.cookie('LiSESSIONID', null); //Try to using jQuery } </script> </code></pre> <p>我可以设置显示弹出窗口<pre><code>name:LiSESSIONID=; expires=Wed, 02 Feb 2011 10:56:52 GMT</code></pre>。也就是晚了一个小时。然而,当我使用firecookies时,我看到这个cookie仍然存在:</p> <pre><code>LiSESSIONID 7A10E3453B01DDFF934AC7AF71EAFEC3 forums.lithiumstage.tomtom.com 43 B / Session HttpOnly </code></pre> <p>有人知道为什么我不能杀死饼干吗?即使我加载该函数,jQuery 函数状态也表示未定义。</p> </question> <answer tick="false" vote="0"> <p>原因是因为设置了HttpOnly标志。这意味着只有服务器端代码可以修改这个cookie。</p> <p>参见:<a href="http://www.owasp.org/index.php/HTTPOnly" rel="nofollow">http://www.owasp.org/index.php/HTTPOnly</a></p> </answer> <answer tick="false" vote="0"> <p>必须在服务器端删除cookie。我不知道你正在使用什么语言,但如果它是节点+表达它会像:</p> <pre><code>res.clearCookie('LiSESSIONID', { httpOnly: true, sameSite: true, domain: 'YOUR DOMAIN HERE', }); </code></pre> <p>HttpOnly 使用起来非常有趣,因为它很安全,并且可以防止它被浏览器更改<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies" rel="nofollow noreferrer">https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies</a></p> <p>如果你想在浏览器中删除它,请在创建cookie时删除httpOnly(我不推荐)。</p> </answer> </body></html>