如何在jquery中创建一个全局函数,并从另一个加载的页面调用它
如何在 jquery 中声明全局函数,如何从使用 jquery 的 load() 函数加载到该页面上的某个 div 中的页面调用它。
第一个子页面中的功能很简单,
+-----------------------------------------------+ | main links | +-----------------------------------------------| | +-------------------------------------------+ | | |1st sub page (myfun function is here) | | | +-------------------------------------------+ | | | +---------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | mybutton clicked myfun called | | | | | | | | | | | +---------------------------------------+ | | | +-------------------------------------------+ | +-----------------------------------------------+
但是当我点击时,没有任何反应...... 这两个函数
myfun
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
mybutton
$("#mybutton").click(function(){
var $bottomLineBtn = $(this);
$bottomLineBtn.parent().myfun('2','43234');
})
有人可以帮助我吗.. 找到解决方案太难了.. 我已经搜索了 3 个小时了...
=================================================== ==================================
已更新
详细场景
- 这是我的 正在使用一些动态的东西jquery
- 第一页包含 2 个 div,一个
id=menu
和其他id=subpage1
, - 我点击 #menu 中的一个链接,页面被加载到
#子页面1
。 - 再次有一个包含 2 个 div
#menu2
和#subpage2
的页面 - ,这里我制作了一个脚本,只需 1 即可自动将页面加载到
#subpage2
参数....这是列表菜单的ID。 这个脚本是..
$("#menu2 li").click(function(){ $("#subpage2").load($(this).attr('page_link')); } }).filter('#menu2 li:eq(0)').click();
在加载的页面中。在最底部,我使用 2 个按钮,其中一个按钮工作正常,它调用上面的函数并更改值 li:eq(1) .. 我就是这样做的。
$("#bottom_bar #backbtn").click(function(){ var $bottomLineBtn = $(this); $bottomLineBtn.parent().parent().parent().find('#menu2 li:eq(1)').click(); })
...但另一个按钮不起作用。我想调用属于 #subpage1
中某些 div 的函数。但无法访问它们。我只在上面的 $("#menu2 li").click(function(){
函数旁边放置了一个函数。
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
但我不知道如何从加载的第二个按钮调用此函数进入 #subpage2
上述场景是否构成场景..请尝试理解我..我不太擅长描述...
how to declare a global function in jquery, how do i call it from a page that was loaded in some div on that page using jquery's load() function.
the function is simple in 1st sub page
+-----------------------------------------------+ | main links | +-----------------------------------------------| | +-------------------------------------------+ | | |1st sub page (myfun function is here) | | | +-------------------------------------------+ | | | +---------------------------------------+ | | | | | | | | | | | | | | | | | | | | | | | mybutton clicked myfun called | | | | | | | | | | | +---------------------------------------+ | | | +-------------------------------------------+ | +-----------------------------------------------+
But when i click, nothing happens...
here are both function
myfun
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
mybutton
$("#mybutton").click(function(){
var $bottomLineBtn = $(this);
$bottomLineBtn.parent().myfun('2','43234');
})
Can somebody please help me.. its too hard to find the solution.. i've been searching for 3 hours...
==================================================================================
updated
here is the detailed scenario
- i'm working on some dynamic stuff using jquery
- the first page contains 2 divs, ones
id=menu
and othersid=subpage1
, - i click on one link from #menu, a page is loaded into
#subpage1
. - there is again a page with 2 divs
#menu2
and#subpage2
- here i made a script that loads pages automatically to
#subpage2
by taking only 1 parameter ....which is id of a listmenu. this script is..
$("#menu2 li").click(function(){ $("#subpage2").load($(this).attr('page_link')); } }).filter('#menu2 li:eq(0)').click();
in the loaded page. at extreme bottom, i use 2 buttons, one button works fine, it calls the above function and change the value li:eq(1) .. that i did like this.
$("#bottom_bar #backbtn").click(function(){ var $bottomLineBtn = $(this); $bottomLineBtn.parent().parent().parent().find('#menu2 li:eq(1)').click(); })
... but the other button doesn't work. i want to call a function that belongs with some divs in #subpage1
. but can't access them. i put only a function, next to the above $("#menu2 li").click(function(){
function.
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
but i don't know how to call this function from the 2nd button loaded into #subpage2
does the above scenario make scene.. please try to understand me.. i'm not very good in description...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为什么不能将函数放在外部 .js 文件中,然后将其导入到主页中?
Why can't you put your function in an external .js file and then import it into your main page?
从另一个函数内部创建的函数,仍然可以全局访问。
根本不需要 jQuery。
Function created from within another function, still globaly accessible.
No jQuery required at all.
如果动态加载内容,则需要使用
.live()
方法连接事件If content is loaded dynamically, events need to be hooked up using the
.live()
method问题是您将该函数链接起来,就好像它是 jQuery 的一部分一样,但您尚未将其作为 jQuery 的插件。
你应该这样调用它
,或者将你的函数定义为 jquery 的插件,
然后像你现在那样调用它
The problem is that you chain the function as if it is part of jQuery, but you have not made it be a plugin to the jQuery.
you should call it like this
or define your function as a plugin of jquery like
and call it as you currently do