单击事件后加载javascript文件

时间:2012-11-13 20:30:22

标签: jquery ajax jquery-plugins click

我试图在点击事件后加载一个富文本插件(NicEdit)。该插件有两个部分:

<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

我做错了什么?

2 个答案:

答案 0 :(得分:1)

尝试.on()...取代.live()并运行.click(),无论代码是在何时加载,之前或之后。

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

});

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

答案 1 :(得分: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