2010-09-16 180 views
0

我有一個顯示一些數據的頁面。它使用php和mysql從數據庫加載,我使用zend框架來處理所有這些。jQuery基本問題

在本頁我有兩件事情使用jQuery。一個是分頁器,另一個是重擊功能。

paginator工作正常。它以json的形式接收數據並將其應用於視圖。我需要處理的所有功能都位於一個js文件中。在這個文件中,我聽點擊...

$(document).ready(function() { 
$("a#next").click(getProgramms); 
$("a#previous").click(getProgramms); 
$("a#page").each(function() { 
    $(this).click(getProgramms); 
}); 
}); 

現在我有一個問題,重擊功能。它位於另一個js文件中。每次單擊豎起大拇指按鈕時,腳本都會提示「單擊」。實際上,當您在使用分頁程序之前單擊時,會出現「單擊」,但是當您在沒有任何事情發生時執行該操作。但dom檢查器中的html似乎是相同的。

在我thumpsup.js我只是

$(document).ready(function() { 
$("a.tp").click(thumpsUp); 
}); 

function thumpsUp() { 
alert("click"); 
} 

我不知道問題出在哪裏。也許js文件互相干擾!?

function thumpsUp() { 
var url = window.location.hostname + '/programme/thumpsup/id/' 
     + $(this).attr('page'); 
$.post(url, { 
    "format" : "json" 
}, function(data) { 
    alert(data); 
}, 'html'); 
return false; 

}

回答

1

我猜paginator是重寫你的元素,他們失去了他們的點擊事件綁定。嘗試使用live()代替事件綁定:

$(document).ready(function() { 
    $("a.tp").live('click',thumpsUp); 
}); 

function thumpsUp() { 
    alert("click"); 
} 
+0

感謝幫助。之前我只使用了一個文檔準備功能。我把它分成兩個功能來尋找錯誤......但仍然存在問題,現在顯示點擊。但是當我調用thumpsUp函數時,我提醒的數據是paginator數據,但url指向打印「測試」的視圖...我在上面添加了一些代碼。任何想法如何解決? – 2010-09-16 13:29:26

+0

我不認爲有足夠的信息可以肯定地回答。什麼是'數據'被設置爲?你是說$(this).attr('page')返回'test'?並且'測試'是否正確? – MacAnthony 2010-09-16 13:53:18

+0

好的數據是響應不是嗎?該警報顯示html代碼,但由於url指向顯示「test」的視圖,因此它會打印另一個頁面的代碼oO – 2010-09-16 14:03:22

0

你可能有腳本文件(包括在你的標記)南轅北轍。這是我能想到的唯一的解決辦法...

我敢肯定,你可以逃脫 $(document).ready()的(哪怕是令人難以接受的)。

+0

看起來他已經在使用兩個$(document).ready()函數了。該命令可能會有助於第一次,但如果我的猜測是正確的,可能不會在分頁程序再次使用後。 – MacAnthony 2010-09-16 13:17:26

+0

是的,這就是我的意思..他不應該使用兩個文件準備好的功能 - 但他是... – 2010-09-16 13:24:05

+0

好吧,我誤解了。我以爲你建議他使用2 .ready()函數。 – MacAnthony 2010-09-16 13:54:53