2011-10-17 39 views
0

java_function.js如何刪除重複的函數調用

$(#call).click(function(){ 
     alert("gogo"); 
    }); 

ajax_call.js

This function called when scroll down 
    #append $(#append).append(data); (data is a.html) 

a.html

<script type=text/javascript src=java_function.js /> 
<script type=text/javascript src=ajax_call.js /> 

<div id=call>CALL entry</div> 
<div id=append></div> 

向下滾動2-3次

當我點擊了「CALL條目」

第一次只顯示一個警報MSG( 「GOGO」) 第二次來電顯示2個警報MSG( 「GOGO」)和( 「GOGO」)

每次點擊

我要叫兩次每次點擊只呼叫一次警報消息 我想刪除重複的功能呼叫(java功能) 如何防止每次點擊呼叫兩次?

+1

那麼,當您插入HTML,你也再插入'script'代碼,這意味着這兩個腳本將被執行,事件處理程序將再次約束。我不確定你想要達到什麼目標,所以我唯一的建議是使用適當的DOM操作(克隆節點)而不是使用HTML。 –

+0

爲什麼你再次追加腳本? '<腳本類型=文本/ JavaScript的SRC = java_function.js />'' <腳本類型=文本/ JavaScript的SRC = ajax_call.js />' – chhameed

+0

我希望能夠顯示每個點擊appeded #CALL警報味精。 – blankammo

回答

1

在我看來,你是多次定義click事件的參考。

把點擊

$(document).ready(function(){ 
    $("#call").click(function(){ 
    alert("gogo"); 
    }); 
}); 
+0

這不會解決問題。在'ready'處理器也將在DOM已經準備好了。意思執行,當你重新插入在'script'標籤,代碼將再次運行。 –

+0

我做到了。但有時卻表現出兩次警告。 我認爲我已經錯過了在java_function「返回false」()... – blankammo

0

在你追加(a.html)的內容,它引用java_function.js?

如果是這樣,則事件可以被連接兩次。卸下a.html

+0

(#call).function當我刪除a.html中的java_function時不起作用(移動a.html外的java_function) 它只在第一次加載時才起作用。 向下滾動2-3次 我得到了3或4條#call條目。 我希望工作的每次點擊每#CALL條目(顯示警報(「GOGO」)#CALL – blankammo

0

你可以不用腳本行添加HTML以避免重複的腳本。

ajax_call.js

This function called when scroll down 
if (first_scroll){ 
$(#append).append(html_full); 
first_scroll = false; 
} else 
$(#append).append(html_lite); //html without script lines