2015-05-14 3 views
0

Я пробовал все альтернативные примеры, которые я мог найти, и не мог заставить это работать. Возможно, это неправильно реализовано. Любая помощь приветствуется.Убедитесь, что функция JavaScript/jQuery всегда работает на загрузке страницы

Мой вопрос:

У меня есть функция, которая предназначается для slideDown предупреждения, если конкретные значения в полях в текстовое поле.

Эта функция работает, если пользователь вводит текстовое поле, но значения обычно передаются с другой страницы. Как я могу запустить его, не требуя, чтобы они взаимодействовали с текстовой областью?

Вот мой пример на JSFiddle: Example

А вот HTML/JS код для легкого чтения:

HTML

<!doctype html> 
<html> 
<head> 
    <title>Alert Test</title> 
</head> 
<body> 
    <div class="controls"> 
     <textarea name="q" class="span12" id="textarea" rows="5">one:</textarea> 
    </div> 
    Test alert: 
    <div class="alert alert-error" id="alert" name="alert" style="display: none;"> 
     This is a test alert. 
     <a href="#" class="close" data-dismiss="alert">&times;</a> 
    </div> 
</body> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="textAreaReader.js"></script> 
</html> 

JS:

$(document).ready(function(){ 
$('#textarea').on('change keyup paste', function() { 
var lines = $('#textarea').val(); 
var fields = ["one", "two", "three"]; 
var leng; 
for (var i=0; i < fields.length; i++) { 
    if (lines.indexOf(fields[i] + ':') !== -1){ 
    leng = 1; 
    } 
} 
if (leng == 1){ 
    $("#alert").slideDown("fast"); //Slide Down Effect 
    }else{ 
    $("#alert").slideUp("fast"); //Slide Up Effect 
    } 
}); 
}); 
+0

Что вы подразумеваете под значениями в текстовой области, «переданы с другой страницы»? У вас есть скрипт, который обновляет текстовое поле? – GreeKatrina

+0

У меня есть внутренний поисковый сайт компании. Мы предоставляем пользователям возможность перейти на отдельную страницу, сохранить их поиск или извлечь какой-либо контент на основе поиска в определенных форматах. Поскольку они запускали поиск на начальной странице, тот, который мне нужен, чтобы запустить JS, проходит поиск. Надеюсь, это имеет смысл. – zrdunlap

ответ

5

Назначение функции переменной позволяет передать ее обработчику textarea и запустить ее при загрузке страницы.

$(document).ready(function() { 
    var slide = function() { 
     … 
    }; 
    $('#textarea').on('change keyup paste', slide); 
    setTimeout(slide, 500); 
}); 

Sample.

+0

Ударьте меня к нему lol. Я был бы осторожен с таймаутами, хотя, потому что они могут замедлить вашу страницу вниз. – GreeKatrina

+0

@GreeKatrina Возможно, вы думаете о 'setInterval'. 'setTimeout' в этом случае не будет иметь побочных эффектов – CodingIntrigue

+0

@RGraham ах да, мой плохой. – GreeKatrina

Смежные вопросы