我在http://jsfiddle.net/josh3736/jf5QK/但在演示和我當您選擇從下拉列表中使用jQuery和東西下拉國家列表,它不會改變的標誌圖像,它只是簡單地改變了國家名稱?我嘗試過玩它無濟於事。jQuery的下拉圖像幫助
任何幫助?
我在http://jsfiddle.net/josh3736/jf5QK/但在演示和我當您選擇從下拉列表中使用jQuery和東西下拉國家列表,它不會改變的標誌圖像,它只是簡單地改變了國家名稱?我嘗試過玩它無濟於事。jQuery的下拉圖像幫助
任何幫助?
因爲形式發佈的國家變回和被選擇的國家時下拉被重建。點擊事件似乎傳播到張貼表單的東西。 這可以通過添加e.preventDefault()的點擊功能可以防止:
// when a language is clicked, make the selection and then hide the list
$(".dropdown dd ul li a").click(function(e) {
var clickedValue = $(this).parent().attr("class");
var clickedTitle = $(this).find("em").html();
$("#target dt").removeClass().addClass(clickedValue);
$("#target dt em").html(clickedTitle);
$languageList.hide();
$dropTrigger.removeAttr("class");
e.preventDefault();
});
我會嘗試尋找到它的一些更多的嘗試找出原因標誌沒有被改變。
編輯: 好像別人給我發前解決標誌問題:P
無論如何,這是我想出瞭解決方案:
var clickedValue = $('em', this).attr("class");
標誌ISN」因爲你沒有像在.click()中預期的那樣獲得標誌圖像的類。如果你改變你的點擊()像我有下面,你將獲得新的名稱和標誌像你期望:
// when a language is clicked, make the selection and then hide the list
$(".dropdown dd ul li a").click(function() {
var clickedValue = $(this).find("em").attr("class");
var clickedTitle = $(this).find("em").html();
$("#target dt em").removeClass().addClass(clickedValue);
$("#target dt em").html(clickedTitle);
$languageList.hide();
$dropTrigger.removeAttr("class");
});
});
的形式回發導致一切辦法去重建它是什麼,然後重置該標誌和國家的名字。
說實話我要去投了兩個其他的努力,因爲他們是很好的解決方案,但我不認爲你的代碼是哪裏錯了 - 這是導致問題的點擊後的回傳。簡單的返回false;應該停止這一點。
// when a language is clicked, make the selection and then hide the list
$(".dropdown dd ul li a").click(function() {
var clickedValue = $(this).parent().attr("class");
var clickedTitle = $(this).find("em").html();
$("#target dt").removeClass().addClass(clickedValue);
$("#target dt em").html(clickedTitle);
$languageList.hide();
$dropTrigger.removeAttr("class");
return false;
});
});
啊哈剛剛看了你的評論,你已經做到了這一點,這些jQuery的難題總是與時間賽跑! – amelvin 2011-03-27 21:57:33
NVM我改成了返回false;它的工作原理 – Steven 2011-03-27 21:52:48
@Steven:怪e.preventDefault()不起作用。它在我的jsfiddle中運行良好。你記得在參數列表中添加e到匿名函數嗎? (即$(「下拉DD UL李一」)。點擊(函數(E)) – Oscar 2011-03-27 22:07:09