无法定位jQuery datepicker

时间:2018-03-21 14:29:18

标签: javascript jquery woocommerce datepicker woocommerce-bookings

我无法使用插件WooCommerce预订在jQuery ui-datepicker中定位元素。

每次我使用JavaScript定位它都会返回null,因此无法执行EventListener。

但是,如果我在jQuery ui-datepicker之外定位任何东西,我实际上可以执行用JS和jQuery创建的事件。

这是我第一次遇到这样的事情,我觉得这很不寻常。

我用过两个片段来测试它是否可以识别元素:

jQuery('.hasDatepicker').on('click', function() {
        alert('hi');
});


function showVolunteers() {
        alert("hi");
}

document.querySelector(".hasDatepicker").addEventListener('click', showVolunteers);

这是一个JS小提琴,其中包含datepicker的HTML:https://jsfiddle.net/e5dnru0e/3/

datepicker嵌套在一个fieldset中,我可以将其定位,所以我想也许我可以尝试使用jQuery('fieldset div.ui-datepicker'),但这也不起作用。

要三重检查我使用的是正确的选择器,我尝试使用一些CSS并且CSS工作正常,所以我的选择器没有问题。

是否有可能以某种方式限制在此datepicker中使用jQuery。

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:2)

当您为任何DOM元素注册事件时,它应该在注册时存在于DOM中。

如果是动态控件(在DOM就绪事件之后注入DOM),您可以使用以下jquery语法来注册事件。

$(document).on('click','.ui-datepicker', function() {
        alert('hi');
});

上面的代码附加document上的点击事件(文档就绪时始终存在)。 on函数的第二个参数是[selector]即。 .ui-datepicker

您可以在任何其他要访问的DOM元素上附加click事件,而不是document 在注册活动时出席。

$('.datepicker-container').on('click','.ui-datepicker', function() {
            alert('hi');
    });
相关问题