使用javascript函数

时间:2017-07-07 19:15:56

标签: javascript jquery html function anchor

我知道本网站的其他地方以及其他许多网站已经介绍过这一点,但我似乎无法理解这一点。

我有一个锚标记用于显示灯箱形式:

<a id="aNoData" href="#divNoData" class="fancybox">No Data</a>

我想使用javascript函数点击它:

function fnNoData()
{
    //  This line works
    alert("this line works");   
    //  Neither of these lines work
    $('#aNoData').click();
     document.getElementById('aNoData').click();
} 

我从后面的代码中调用函数,如下所示:

ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "fnNoData()", true); 

当我这样做时,第一行(警告框)显示正常。但是,其他两行(单击锚标记)不会。如果我将它们放在我的$(document).ready块中(锚点击页面加载),那么非工作行很有效。所以看起来单击我的锚点的行很好,而不是在我的函数中。

任何人都可以看到我做错了吗?

4 个答案:

答案 0 :(得分:0)

如果您想直接点击,可以使用trigger

检查这个希望这会对你有所帮助。

function fnNoData()
{
    //  This line works
    alert("this line works");   
    //trigger
    $('#aNoData').trigger('click');
    //document.getElementById('aNoData').click();
} 

答案 1 :(得分:0)

jquery click事件期待一个函数 (未经测试)

$('#aNoData').on("click", function() {
  console.log( "clicked the element with id aNoData );
});

如果你想触发点击(没有实际点击),jquery也有一个功能: http://api.jquery.com/trigger/

答案 2 :(得分:0)

引用您的评论

  

好的帕特里克,谢谢,我确实尝试将整个功能放在我的$(文件).ready块中,但它根本不起作用

您不应在$(document).ready()内定义整个函数,而是在外部定义它并从ready()函数内部调用它

您原来的功能

function fnNoData(){
    //  This line works
    alert("this line works");   
    //  Neither of these lines work
    $('#aNoData').click(); 
}

ready()

调用它
jQuery(document).ready(function () {
    fnNoData();
});

希望这有帮助!

答案 3 :(得分:0)

花了好几个小时,但我终于强行解决了问题。

正如一些回复者所说,我的代码背后是在所有元素完全加载之前尝试使用DOM。通过将我的代码中的行更改为:

,我解决了这个问题
ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "$(window).load(function() {fnNoData();});", true);