采用JSI解决不同类库间的冲突

来源:互联网 发布:java经典企业 面试题 编辑:程序博客网 时间:2024/04/28 02:28
众所周知, Scriptaculous所依赖的Prototype库与jQuery存在冲突。所以同时使用比较困难。
JSI针对每一个装载的脚本都有完全独立的执行上下文。所以这个问题能在JSI上彻底解决。
下面的例子,我们将在同一个页面上同时使用Scriptaculous和 jQuery 类库。证实一下JSI隔离冲突功能。
示例页面(hello-jquery-aculo.html):
<html> 
<head> 
<title>Hello jQuery And Scriptaculous</title> 
<!-- 加入引导脚本 --> 
<script src="../scripts/boot.js"></script> 
<script> 
//导入jQuery  
$import(
"org.jquery.$"); 
//导入Scriptaculous  
$import(
"us.aculo.script.Effect");  
 
  
$(document).ready(
function(){ 
  
//使用jQuery添加一段问候语 
  $(
"<p id='helloBox' style='background:#0F0;text-align:center;font-size:40px;cursor:pointer;'>Hello jQuery And Scriptaculous</p>")       .appendTo('body');  
  $('#helloBox').ready(
function(){  
   
//使用Scriptaculous高亮显示一下刚才添加的内容  
    new Effect.Highlight('helloBox');  
  }).click(
function(){  
   
//当用户单击该内容后使用jQuery实现渐出  
    $('#helloBox').fadeOut();  
  });  
 });  
</script>  
</head>    
<body>    
<p>文档装载后,jQuery将在后面添加一段问候语;并使用Scriptaculous高亮显示(Highlight);在鼠标点击后在使用jQuery渐出(fadeOut)。</p>  
</body>  
</html>  

 

 

之前,我自己也曾经考虑和遇到过这个问题,虽然在正式的项目中我绝对不会同时使用这两个东西,但是毕竟目前有有了一个解决的方法,也为今后多了一种选择.

 原文出自:http://www.blogjava.net/jindw/archive/2007/06/26/126241.html
原创粉丝点击