2010-03-15 61 views
0

我們的設計機構提供了使用NiceForms的HTML。我遇到的問題是,這會讓jQuery事件綁定變得麻煩。Niceforms和jQuery事件

我有以下代碼:

keys = $("#key input"); 
$(keys).each(function(){ 
    $(this).change(function() { 
    console.log("hi"); 
    }); 
}); 

如果我禁用NiceForms此代碼的工作,但在啓用Niceforms事實並非如此。我如何解決這個問題?

回答

0

好吧,事實證明,問題是,點擊時Niceforms圖像不會引發底層複選框的onchange事件。

爲了提高潛在的事件中找到的NiceForms.js功能inputCheck和修改以下(假設你正在使用jQuery):

el.dummy.onclick = function() { 
    if(!this.ref.checked) { 

     this.ref.checked = true; 
     $(this.ref).change(); //added 
     this.className = "NFCheck NFh"; 
    } 
    else { 

     this.ref.checked = false; 
     $(this.ref).change(); //added 
     this.className = "NFCheck"; 
    } 
} 
2

修復代碼中的錯字,看看它是否工作則:

keys = $("#key input"); 
$(keys).each(function(){ 
    $(this).change(function() { 
    console.log("hi"); 
    }); // <-- oops 
});  // <-- oops 

我與NiceForms測試試玩使用:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 

和選擇keys = $(".niceform input");和固定它的工作錯字後,如預期。你將代碼放在$(document).ready(function() {}處理程序中,對嗎? #key是包含表單輸入元素的元素的正確選擇器,對嗎?

+0

對不起錯別字只有在代碼中我曾寫到這裏(我)無論如何,我仍然遇到同樣的問題 – 2010-03-16 09:03:37

+1

正如我所提到的,我使用NiceForms演示下載測試了您的代碼,並且它按預期工作,所以我們錯過了一些信息。我建議你發佈你的HTML或鏈接到現場演示顯示問題。 – ghoppe 2010-03-16 14:51:50