2012-11-13 65 views
0

我想加载一个富文本插件(NicEdit)后单击事件。该插件有两个部分是:单击事件后加载JavaScript文件

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script> 
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script> 

当我尝试如下的单击事件之前的文件加载,它的工作原理

$(document).ready(function() { 
    $.getScript('http://js.nicedit.com/nicEdit-latest.js', function(jd) { 
     // Call custom function defined in script 
      bkLib.onDomLoaded(function() { nicEditors.allTextAreas() 
     }); 
    $("a").click(function(event)); 
    }); 
}); 

不过,我需要它来加载click事件经过这么它也适用于我加载的innerHTML页面。

编辑

$(document).ready(function() {  
    $('a').on('click', function(ev) { 
     ev.preventDefault(); 
     var url = $(this).attr('href'); 
     $.getScript("https://s3.amazonaws.com/RichText-javascript/nicEdit.js",function(){ 
     $('.answers').load(url); 
    });//getscript ends 
    });//click handler ends 
});//doc ready ends 

我在做什么错?

+0

你有一个语法错误,改变'.load('+网址,function'通过'.load (url,function() – sdespont

回答

1

尝试使用.on()...它取代.live(),并会在代码加载之前或之后运行.click()。

$(parent).on("click","a", function(ev){ 

}); 

编辑 - 正如RoXon指出的那样。这将只在绑定到父级时才起作用。

+0

我不认为这是解决问题的方法。 –

+1

你写的是不正确的。$('a')。on(“click”,function(ev){'不是'.live()'的兄弟哥哥请仔细看一下DOCS –

+0

http://api.jquery.com/on/已添加为1.7 – Zak

1

我希望不出现错别字在实际代码下面应该工作

$(document).ready(function() {  
    $('a').click(function(ev) { 
     ev.preventDefault(); 
     var url = $(this).attr('href'); 
     $.getScript("http://js.nicedit.com/nicEdit-latest.js",function(){ 
     //you can use the loaded js script here in the callback 
     $('.innerHTML').load(url, function(response){ 
      //load calback 
     });//load ends 
    });//getscript ends 
    });//click handler ends 
});//doc ready ends 

DEMO

+0

我试过它没有加载回调函数,它不加载文件 – Andrew

+0

更新了代码以反映这 – Andrew

+0

我在答案中包含了一个演示,它工作正常 – Rafay