Javascript 自动触发jquery插件onclick
我有一个jquery插件,当你点击按钮时,它会显示一个隐藏的div和动画。我使用了jquery.fn原型 这是jquery插件Javascript 自动触发jquery插件onclick,javascript,jquery,Javascript,Jquery,我有一个jquery插件,当你点击按钮时,它会显示一个隐藏的div和动画。我使用了jquery.fn原型 这是jquery插件 (function($) { 'use strict'; $.fn.launchBtn = function(options) { var mainBtn, panel, clicks, settings, launchPanelAnim, closePanelAnim, openPanel
(function($) {
'use strict';
$.fn.launchBtn = function(options) {
var mainBtn, panel, clicks, settings, launchPanelAnim, closePanelAnim, openPanel, boxClick, panelBody, panelMedia;
mainBtn = $(".proactive-chat-button");
panel = $("#proactive-chat .panel");
panelMedia = $("#proactive-chat .panel-media");
panelBody = $("#proactive-chat .panel-body");
clicks = 0;
//default settings
settings = $.extend({
openDuration: 600,
closeDuration: 200,
rotate: true
}, options);
//Open panel animation
launchPanelAnim = function() {
$(panel).removeClass('swift-out');
$(panelMedia).removeClass('swift-out');
$(panelBody).removeClass('swift-out');
panel.animate({
opacity: "show",
width: "show",
height: "show",
}, settings.openDuration);
$(panel).addClass('swift-in');
$(panelMedia).addClass('swift-in');
$(panelBody).addClass('swift-in');
panelMedia.animate({
opacity: "show",
width: "slideDown",
height: "slideDown",
transitionDelay: "0.1s"
}, settings.openDuration);
calculate();
$('.proactive-chat-button').addClass('shadow-3');
};
//Close panel animation
closePanelAnim = function() {
$(panel).removeClass('swift-in');
$(panelMedia).removeClass('swift-in');
$(panelBody).removeClass('swift-in');
$(panel).addClass('swift-out');
$(panelMedia).addClass('swift-out');
$(panelBody).addClass('swift-out');
panel.animate({
opacity: "hide",
width: "hide",
height: "hide"
}, settings.closeDuration);
panelMedia.animate({
opacity: "hide",
width: "slideDown",
height: "slideDown",
transitionDelay: "0.02s"
}, settings.openDuration);
$('.proactive-chat-button').removeClass('shadow-3');
$('.modal-overlay').fadeOut(100);
};
//Open panel and rotate icon
openPanel = function(e) {
if (clicks === 0) {
if (settings.rotate) {
// $('.proactive-chat-icon').removeClass('rotateBackward').toggleClass('rotateForward');
}
launchPanelAnim();
clicks++;
} else {
if (settings.rotate) {
//$('.proactive-chat-icon').removeClass('rotateForward').toggleClass('rotateBackward');
}
closePanelAnim();
clicks--;
}
e.preventDefault();
return false;
};
//Allow clicking in panel
boxClick = function(e) {
e.stopPropagation();
};
//Main button click
mainBtn.on('click', openPanel);
//Prevent closing panel when clicking inside
panel.click(boxClick);
$('.proactive-chat-icon').click(function() {
$('.proactive-chat-icon .procty').toggleClass('proactive-procty-close').toggleClass('proactive-procty');
});
$('.panel-heading-button').click(function() {
if (clicks === 0) {
if (settings.rotate) {
// $('.proactive-chat-icon').removeClass('rotateBackward').toggleClass('rotateForward');
$('.proactive-chat-icon .procty').toggleClass('proactive-procty-close').toggleClass('proactive-procty');
}
launchPanelAnim();
clicks++;
} else {
if (settings.rotate) {
//$('.proactive-chat-icon').removeClass('rotateForward').toggleClass('rotateBackward');
$('.proactive-chat-icon .procty').toggleClass('proactive-procty').toggleClass('proactive-procty-close');
}
closePanelAnim();
clicks--;
}
});
$(document).click(function() {
closePanelAnim();
if (clicks === 1) {
$('.proactive-chat-icon .procty').toggleClass('proactive-procty').toggleClass('proactive-procty-close');
}
clicks = 0;
});
};
}(jQuery));
为了使用它,我调用了launchBtn()方法
我关心的是,我想在满足某个时间间隔或条件时自动触发它。我使用了$('proactivechat').trigger('click'))但是它不起作用。有没有办法我可以自动触发它?先谢谢你 .click()
返回jQuery对象,因此在单击事件中不会调用函数。如果希望在单击过程中触发,则需要将处理程序函数作为参数添加到click()
中,如下所示:
$("#proactive-chat").click(function(){
$(this).launchBtn({
openDuration: 250,
closeDuration: 300
});
});
在这种形式下,.trigger('click')
应该可以工作,尽管我不太明白为什么在插件中的任何地方都不引用这个
时要使用$.fn
原型。这可能是一个简单的函数。.click()
返回jQuery对象,因此在单击事件中不会调用函数。如果希望在单击过程中触发,则需要将处理程序函数作为参数添加到click()
中,如下所示:
$("#proactive-chat").click(function(){
$(this).launchBtn({
openDuration: 250,
closeDuration: 300
});
});
在这种形式下,.trigger('click')
应该可以工作,尽管我不太明白为什么在插件中的任何地方都不引用这个
时要使用$.fn
原型。这可能是一个简单的函数