0
내 JS : 표시 내 모달에서왜 내 함수가 부트 스트랩 모달로 많은 시간을 호출합니까?
$("#modalADDpp").on('shown',function(e){
$(this).find('input[type=text]').filter(':first').focus();
var count = 0;
alert(count);
$('#pp_tab a').click(function() {
$(this).tab('show');
})
$("#TenPP").typing({ // jquery for check when finish typing
start: function(event ,$elem) {
$(".add-on").remove();
return false;
},
stop: function (event, $elem) {
count ++;
alert(count);
if(count == 1)
{
Ajax_Check_Name($elem);// Check name same with database by ajax
}
return false;
},
delay: 500
});
$("#modalADDpp").on('hidden',function(e){
$(this).closest('form').find("input[type=text], textarea").val("");
$(".add-on").remove();
});
});
I 상자에 $ 개수 = 0. 처음에는 괜찮습니다. 하지만 모달을 숨기고 다시 열면 $ count not = 0, $ count now = 2 => 내 함수는 두 번 호출하고, 다시 닫으면 3, 4, 5 번 더 호출합니다.
나는
를 사용하는 경우 (카운트 == 1)
내가 그것을 확인 작업 낭포가 한 번만 실행 싶어하지만 난 문제가 어디 있는지 잘 모릅니다 때문이다. 도움이 필요하다 !!! typing.js의
코드 숨김 또는 정지 기능에 ... 0으로 카운트를 재설정
(function ($) {
//--------------------
// jQuery extension
//--------------------
$.fn.typing = function (options) {
return this.each(function (i, elem) {
listenToTyping(elem, options);
});
};
//-------------------
// actual function
//-------------------
function listenToTyping(elem, options) {
// override default settings
var settings = $.extend({
start: null,
stop: null,
delay: 400
}, options);
// create other function-scope variables
var $elem = $(elem),
typing = false,
delayedCallback;
// start typing
function startTyping(event) {
if (!typing) {
// set flag and run callback
typing = true;
if (settings.start) {
settings.start(event, $elem);
}
}
}
// stop typing
function stopTyping(event, delay) {
if (typing) {
// discard previous delayed callback and create new one
clearTimeout(delayedCallback);
delayedCallback = setTimeout(function() {
// set flag and run callback
typing = false;
if (settings.stop) {
settings.stop(event, $elem);
}
}, delay >= 0 ? delay : settings.delay);
}
}
// listen to regular keypresses
$elem.keypress(startTyping);
// listen to backspace and delete presses
$elem.keydown(function (event) {
if (event.keyCode === 8 || event.keyCode === 46) {
startTyping(event);
}
});
// listen to keyups
//$elem.keyup(stopTyping);
// listen to blurs
$elem.blur(function (event) {
stopTyping(event, 0);
});
}
})(jQuery);
전 테스트했지만 count = 0이지만 모달이 다시 열리면 여전히 두 번 => count alway = 1 => 함수가 여러 번 호출됩니다. ( – Goben