Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 页面上的jquery函数调用onload和onclick?_Javascript_Jquery - Fatal编程技术网

Javascript 页面上的jquery函数调用onload和onclick?

Javascript 页面上的jquery函数调用onload和onclick?,javascript,jquery,Javascript,Jquery,我正在使用jquery日历,但我需要在页面加载和单击时调用一个函数。第一次加载页面时,应自动调用并执行该函数,第二次及以后应通过单击调用该函数。有可能吗??如果是,请帮助我 <script type="text/javascript"> $(document).ready(function(){ $("#fullDate").datepicker({ showOn: "button", buttonImage: "image

我正在使用jquery日历,但我需要在页面加载和单击时调用一个函数。第一次加载页面时,应自动调用并执行该函数,第二次及以后应通过单击调用该函数。有可能吗??如果是,请帮助我

   <script type="text/javascript">

   $(document).ready(function(){
      $("#fullDate").datepicker({

        showOn: "button",
        buttonImage: "images/calender.jpg",
        buttonImageOnly: true,

        onClose: function(dateText, inst) {
        $('#year').val(dateText.split('/')[2]);
        $('#month').val(dateText.split('/')[0]);
        $('#day').val(dateText.split('/')[1]);
    }


    });


});
</script>

$(文档).ready(函数(){
$(“#fullDate”).datepicker({
展示:“按钮”,
buttonImage:“images/calender.jpg”,
buttonImageOnly:正确,
onClose:函数(dateText,inst){
$('year').val(dateText.split('/')[2]);
$('#month').val(dateText.split('/')[0]);
$('#day').val(dateText.split('/')[1]);
}
});
});

在加载过程中,您可以使用

//when window loads
$(window).load(function(){
    functionCallHere();
});

//or when DOM is ready
$(document).ready(function(){
    functionCallHere();
});
然后点击

$(element).click(function(){
    functionCallHere();  //call the function again
});

其中
functionCallHere
是在这些事件中调用的公共函数的名称。

尝试编写一个命名函数,并在两个事件中调用它:

$(document).ready(function(){
  $("#fullDate").datepicker({
    showOn: "button",
    buttonImage: "images/calender.jpg",
    buttonImageOnly: true,

    onClose: function(dateText, inst) {
        $('#year').val(dateText.split('/')[2]);
        $('#month').val(dateText.split('/')[0]);
        $('#day').val(dateText.split('/')[1]);
    }
  });
  $("#fullDate").datepicker("show"); // this will run once.
});
function doSomething() {
    // ...
}
$(document).ready(function() { doSomething() });
$(yourElem).on("click", function() { doSomething() });
除了将匿名函数编写为回调函数外,只需调用
doSomething
,还可以将函数名作为参数传递,通过不使用不必要的匿名函数扰乱内存来获得一点性能:

$(document).ready(doSomething);
$(yourElem).on("click", doSomething);

最好使用新的.on()方法。无需在回调中包装函数调用。只需使用
$(文档).ready(doSomething)@ahren在这种情况下,这确实更好,我将添加它。但是传递论点怎么样?也许也有可能,但我不知道怎么做。也许你可以告诉我?它工作得很好,但还是少了一些东西。当页面加载时,日历会自动弹出,这非常好,但它也会自动消失。但是日历的弹出和消失应该非常快,用户无法在页面加载时看到日历。用户只能在单击时看到日历,但首先该函数应调用其自身执行该函数。简言之,点击从一开始到最终结束的所有过程都应该第一次自动完成,无需点击。thanxI不知道为什么需要在用户看不到的情况下显示/隐藏日历选择器——我想不出有什么好处。但是只要使用
$(“#fullDate”).datepicker(“hide”)直接在
显示之后
。有趣的是,我的答案是唯一一个回答(推断)问题的答案,但却没有获得投票权。我会在获得所需功能后解释为什么我需要这个答案。你是说喜欢那样吗,阿伦$(“完整日期”).datepicker(“显示”).$(“完整日期”).datepicker(“隐藏”);如果是的,它不工作,我不知道为什么,让他们两个单独的行<代码>$(“#完整日期”)。日期选择器(“显示”)
$(“#fullDate).日期选择器(“隐藏”)
。最好在别人给你答案之前解释一下为什么你“需要”一些东西,因为他们可能对如何完成工作有更好的想法,而不必走那条特定的路线。亲爱的阿伦,原因是我有一个隐藏的文本字段,它有一个硬编码的值(日期),并且有三个独立的下拉列表,分别是日、月和年。我需要的是,当页面加载时,函数第一次应该执行,隐藏字段中的日期应该分为几部分,即日、月和年,并在相应的下拉列表中显示。这就是为什么我第一次需要向用户隐藏日历。希望你得到我的p点评。