2013-10-21 91 views
1

我試圖創建一個花哨的框和不幸的表單,即使它顯示輸入元素和正確的標記,單擊任何形式導致fancybox刷新。我錯過了什麼,以禁用點擊事件的泡沫,所以你可以實際進入一個文本輸入框或選擇形式的selectoptions沒有花哨的盒子刷新?FancyBox刷新每一次點擊

$(document).ready(function() { 
     var box = $("#show_mailing_list_signup"); 


     box.fancybox({ 
      'showCloseButton': true, 
      'scrolling': 'no', 
      'titleShow': false, 
      'beforeLoad': function() { 
       return !hideMailList(); 
      }, 
      'afterLoad': function() { 

       $('#disableSignup').click(function() { 
        setCookie("hideSignup", true, 365); 
        $.fancybox.close(); 
        return false; 
       }); 

       $("#send_form").click(function() { 

        return false; 
       }); 


      } 
     }).click(); 
    }); 


<div id="show_mailing_list_signup"> 
     <form id="mailinglistForm" method="post"> 
      <h2>Header</h2> 
      <label for="name">* Name </label> 
      <p> 
       <input name="fname" type="text" id="name" minlength="4" maxlength="15" /> 
      </p> 
      <br /> 
      <label for="email">* Email </label> 
      <p> 
       <input name="email" type="text" id="email" /> 
      </p> 
      <br /> 
      <label for="state">Pick your favorite school</label> 
      <p> 
       <select id="state"> 
        <option>NY</option> 
        <option>IL</option> 
       </select> 
       <select id="city"> 
        <option>Schenectedy</option> 
        <option>Fishkill</option> 
       </select> 
      </p> 
      <p> 
       <input id="schoolSearch" type="text"/> 
      </p> 

      <%--default to the most select school--%> 
      <p style="margin-top: 20px;"> 
       <input value="Join Now" type="button" name="send_form" id="send_form" /> 
      </p> 

     </form> 
     <p class="details">blah</p> 
     <a href="#" id="disableSignup">don't show again</a> 
    </div> 

回答

5

當你做到這一點

var box = $("#show_mailing_list_signup"); 
    box.fancybox().click() 

元素<div id="show_mailing_list_signup">(其中包含你的fancybox打開窗體)成爲觸發目標的fancybox的,所以,只要你該容器內的click將一遍又一遍地觸發fancybox。

更改選擇到別的目標表單像

var box = $(".fancybox"); 
    box.fancybox({ 
     // API options here 
    }).click(); 

注意:你仍然需要有一個HTML元素(通常是一個鏈接)與class="fancybox"來定位form這樣的:

<a class="fancybox" href="#show_mailing_list_signup"></a>