0

私たちのデザインエージェンシーは、NiceFormsを使用するHTMLを提供しています。私が抱えている問題は、これがjQueryイベントのバインドを台無しにすることです。

私は次のコードを持っています:

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

NiceFormsを無効にすると、このコードは機能しますが、Niceformsを有効にすると機能しません。この問題を回避するにはどうすればよいですか?

4

2 に答える 2

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フォーム入力要素を囲む要素の適切なセレクターですよね?

于 2010-03-15T17:47:13.703 に答える
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";
    }
}
于 2010-03-17T23:05:04.843 に答える