2013-06-27 25 views
-1

在我的頁面我沒有複選框,我將它們過濾爲2類。在情況下,如果我的值等於我的服務器值,我正在添加一個類..元素(5個元素)的第1部分。休息是元素的第二部分。jquery過濾元素「單擊」事件後給出錯誤的控制檯號碼

在元素的第2部分的情況下,如果我點擊,給控制檯的次數(我添加類5次)的功能..這是什麼原因,以及如何避免..

這裏是我的功能:

var sv = []; 
var userLocales = $('input[type="checkbox"]', "form").filter(function() { 
    return $(this).val() === value["name"]; 
}).prop("checked", true).addClass("userLocales").on("change", function() { 
    console.log($(this).prop("class")); 
}); 
var plainLocales = $('input[type="checkbox"]', "form").filter(function() { 
    return $(this).hasClass("userLocales") !== true; 
}).on("change", function() { 
    console.log("i am fresh"); //consoling 5 times.. 
}); 

回答

2

我得在下面的例子中這個工作,看看,看看它是否解決您的問題。

示例HTML:

<form> 
    <input type="checkbox" name="checkbox1" value="Aus" /> 
    <input type="checkbox" name="checkbox2" value="US" /> 
</form> 

例JS:

var serverValue = { name: "US" }; 

var userLocales = $('input[type="checkbox"]', "form") 
    .filter(function() { 
     return $(this).val() === serverValue["name"]; 
    }) 
    .prop("checked", true) 
    .addClass("userLocales").on("change", function() { 
     console.log($(this).prop("class")); 
    }); 

var plainLocales = $('input[type="checkbox"]', "form") 
    .filter(function() { 
     return $(this).hasClass("userLocales") !== true; 
    }) 
    .on("change", function() { 
     console.log("i am fresh"); 
    }); 

Example Fiddle

+0

你撥弄不工作.. – 3gwebtrain

+0

對不起這是一個粘貼錯誤,現在就來試試。 – JonVD

+0

是你的工作正常,但我的情況這是行不通的。 – 3gwebtrain