确保JavaScript / jQuery函数始终在页面加载时运行

时间:2015-05-14 14:15:09

标签: javascript jquery

我尝试了所有可以找到的替代示例,并且无法使其发挥作用。我可能错误地实现了它。非常感谢任何帮助。

我的问题:

我有一个函数,如果textarea中的特定值,则表示要向其发送警报。

如果用户键入textarea,则此函数有效,但值通常从另一页传入。如何在不要求它们与文本区域交互的情况下运行它?

这是我在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  
  }
});
});

1 个答案:

答案 0 :(得分:5)

将函数分配给变量可以将它传递给textarea处理程序并在页面加载时运行它。

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

Sample