如何在jquery中声明一个全局函数,如何使用jquery的load((函数从该页面上某个div中加载的页面调用它。
功能在第一个子页面中很简单
+-----------------------------------------------+|主要链接 |+-----------------------------------------------||+-------------------------------------------+ || |第一个子页面(myfun功能在这里( | ||+-------------------------------------------+ || |+---------------------------------------+ | || | | | | || | | | | || | | | | || | |MyButton点击了MyFun的呼叫| | || | | | | || |+---------------------------------------+ | ||+-------------------------------------------+ |+-----------------------------------------------+
但是当我点击时,什么也没发生...这里都是功能
我的芬
myfun(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
}
我的按钮
$("#mybutton").click(function(){
var $bottomLineBtn = $(this);
$bottomLineBtn.parent().myfun('2','43234');
})
有人可以帮帮我..很难找到解决方案..我已经搜索了3个小时...
========================================================================================================================================================================================================================================================
更新
这是详细场景
- 我正在使用jQuery处理一些动态内容
- 第一页包含 2 个div,一个是
id=menu
个,其他id=subpage1
个, - 我单击 #menu 中的一个链接,一个页面被加载到
#subpage1
. - 又有一个页面有 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
中的第二个按钮调用此函数
以上场景是不是做场景..请试着理解我..我不太擅长描述...
为什么不能将函数放在外部.js文件中,然后将其导入主页?
function setGlobalFunc()
{
window.myfunc = (function(){alert("o hai");});
}
setGlobalFunc();
myfunc();
从另一个函数中创建的函数,仍可全局访问。
根本不需要jQuery。
如果内容是动态加载的,则需要使用 .live()
方法挂接事件
$("#mybutton").live("click", function() { /* code here */ });
问题是你把函数链起来,就好像它是jQuery的一部分一样,但你还没有让它成为jQuery的插件。
你应该这样称呼它
$("#mybutton").click(function(){
// var $bottomLineBtn = $(this);
// $bottomLineBtn.parent();
myfun('2','43234');
})
或者将您的函数定义为 jquery 的插件,例如
$.fn.myfun = function(tab_index, acc_id){
alert(tab_index +" | +" acc_id);
};
并像您当前一样调用它