从noConflict范围外调用函数

时间:2016-02-14 06:12:37

标签: javascript jquery

我需要调用函数startCountDown(),但我得到TypeError: startCountDown is not a function

贝洛是我的代码:

jQuery.noConflict();
(function($) {
    $(function(){
        var duration = "<?php echo $kk_details22['duration'];?>" * 60;
        startCountDown(duration);

        function startCountDown(duration){

            $('#defaultCountdown').countdown({
                until: +duration,
                format: 'HMS',
                layout: '<div id="timer">'+
                    '<div id="vals">'+
                        '<div id="h" class="numbs">{hnn}</div>'+
                        '<div id="m" class="numbs">{mnn}</div>'+
                        '<div id="s" class="numbs">{snn}</div>'+
                    '</div>'+
                    '<div id="labels">'+
                        '<div id="hl" class="labs">hours</div>'+
                        '<div id="ml" class="labs">mins</div>'+
                        '<div id="sl" class="labs">secs</div>'+
                    '</div>'+
                '</div>',
                 onExpiry: submitkk
            });     
        }
    })
})(jQuery);

function submitkk() {
    $("#timeAlertModal").modal('show');
    startCountDown(60); # give one more minute
}

1 个答案:

答案 0 :(得分:0)

除非您想要阻止人们在控制台或第三方库中执行该功能,将函数声明移动到全局或外部作用域,或者您的{,否则无需在onload事件中定义您的函数。 {1}}函数到内部范围。您可以(也可能应该)以编程方式添加表单处理程序,我无法看到您使用它的位置,但我认为它类似于:submitkk,从您的onload处理程序添加它:

<form onsubmit="submitkk();">..

确保加载顺序正确,并且可能有助于捕获noConflict的返回:

$('#your-form').on('submit', submitkk);