2012-11-13 93 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