我正在尝试触发click方法,但它无法正常工作。请帮我找一个解决方案
$( '.New ').live( "click", function() {
alert("hay");
$(this).addClass("New1");
datePick () ;
jQuery('.New1').trigger('click');
jQuery('.New1')[0].click();
})
$( '.New1 ').live( "click", function() {
datePick () ;
})
function datePick () {
alert("yes");
var $input = $( '.New1' ).pickadate({
weekdaysShort: [ 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa','Su' ],
showMonthsShort: true,
disable: [
1, 2, 3,4
],
min: [2014,3,20],
max: [2014,7,14],
today: false,
clear:false
});
var picker = $input.pickadate('picker');
picker.on('open', function() {
console.log('Didn’t open.. yet here I am!')
})
}
答案 0 :(得分:1)
$( '.New').on( "click", function() {
alert("hay");
$(this).addClass("New1");
datePick () ;
jQuery('.New1').trigger('click');// using only trigger will work here
})
$( document).on( "click",'.New1', function() { // on for delegation
datePick () ;
})
function datePick () {
alert("yes");
var $input = $( '.New1' ).pickadate({
weekdaysShort: [ 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa','Su' ],
showMonthsShort: true,
disable: [
1, 2, 3,4
],
min: [2014,3,20],
max: [2014,7,14],
today: false,
clear:false
});
var picker = $input.pickadate('picker');
picker.on('open', function() {
console.log('Didn’t open.. yet here I am!')
})
}
答案 1 :(得分:0)
将来提及此问题的任何人,event.stopPropagation();
都是关键,如封闭式git问题#481中所述。
您应该使用pickadate picker.open();
而不是触发点击。在这里发布样本。 Checkout live sample here.
<强> HTML:强>
<input type="text" class="datepicker" />
<button>Click me<br/>to show date picker</button>
<强>的Javascript 强>
var $input = $('.datepicker').pickadate();
var picker = $input.pickadate('picker');
picker.on('open', function() {
console.log('Opened.. and here I am!');
})
$('button').on('click', function(event) {
event.stopPropagation();
picker.open();
});