代码之家  ›  专栏  ›  技术社区  ›  Michael Edwards

Niceforms和jQuery事件

  •  0
  • Michael Edwards  · 技术社区  · 15 年前

    我们的设计机构提供了使用 NiceForms . 我遇到的问题是,这会破坏jQuery事件绑定。

    我有以下代码:

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

    2 回复  |  直到 15 年前
        1
  •  2
  •   ghoppe    15 年前

    修复代码中的拼写错误,看看是否有效,然后:

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

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

    keys = $(".niceform input"); 在修复了排版后,它也能正常工作。您将代码封装在 $(document).ready(function () {} 汉德勒,对吧? #key 是包含表单输入元素的元素的正确选择器,对吗?

        2
  •  0
  •   Michael Edwards    15 年前

    好,问题是单击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";
        }
    }