编辑:
只是想知道是否可以在html体中添加一个函数(或静态脚本)块或变量。
像这样,
$('body').add(function(){/../})
或
$('body').append('<script></script>')
或
$('body').fn.myFunc = function(){}
使用.extend是否正确?
一个例子是如果我使用ExternalInterface,我的回调必须在body / html / js中静态定义,但不能在$()。ready函数中定义,除非我有一个全局定义的var并在$()中引用它.ready function
我忽略了这个要求,那就是我想添加动态回调函数的地方。
答案 0 :(得分:4)
在标记中创建脚本标记
$('<script/>', {
type: 'text/javascript',
src: 'http://...'
}).appendTo(document.body);
扩展jQuery
使用
$.fn.yourmethodname = function(){
});
答案 1 :(得分:2)
有一种方法$.getScript()
,您也可以使用它。
示例:强>
<script>$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
$("#go").click(function(){
$(".block").animate( { backgroundColor: 'pink' }, 1000)
.animate( { backgroundColor: 'blue' }, 1000);
});
});</script>
答案 2 :(得分:0)
你几乎可以在Javascript中附加一个函数,它真的不关心。
在你的最后一个选项中,fn对象必须存在于body DOM对象上,然后才能向其添加更多函数。
这样的事情会起作用:
$(function() {
$('body')[0].fn = function() {};
$('body')[0].fn.myFunc = function() { alert('Yay function'); };
});
或者,如果您只想在body元素上使用函数:
$('body')[0].myFunc = function() { alert('Yay function'); };
确保在$('body')的末尾包含[0]位,或者将函数附加到包装body DOM对象的JQuery对象。我不认为你可以放心,每次你调用$('body')你都会得到完全相同的JQuery对象。
答案 3 :(得分:0)
我感觉到你的痛苦。但后来我有一个调试噩梦与运行时脚本添加,我决定另一种方法。
这是我如何使用它的一个例子,在这种情况下使用按钮。
我没有在代码中使用静态菜单按钮,而是使用单个按钮功能并使用运行时信息让我的php知道它响应的按钮以及应用程序所需的任何页面参数。这可能是页面ID和部分ID的最小值。不是按钮ID,因为此方法的目的是允许动态添加按钮。只有你的php需要为你添加的任何其他按钮改变它的动作。
<script type="text/javascript" >
$(document).ready(function(){
$("button").click( function() {
$.get( "/menu_to_body_respond.php", {
pageId: $thisPageId
subSecID: $thisSubID
}, function( resp ) {
$("#left_body").html(resp);
});
});
});
</script>
然后使用php函数中的部分执行任何操作 menu_to_body_respond.php
<?php
$pageIDVal = $_GET[ 'thisPageId'];
$subIDVal = $_GET[ 'thisSubId'];
// code to decide what to do with this button press
// switch statements do a good job, if your
// application has a lot of items you might want to respond to
//just put the most used items at the beginning of the switch.
//tmp code to give you a response
$outStr = $pageIDVal . " Left Body B2";
echo($outStr);
?>
你可能会混淆它,拥有在本地响应的按钮,例如常规菜单打开/折叠和基本的客户端工作。只需将id命名为按钮,如果其中一个可以响应,则只需使用if-else语句停止运行$(&#39;按钮&#39;)。