2013-08-22 73 views
0

我通過使用從www.siteone.com調用的一些腳本生成www.sitetwo.com中的表單。由於我必須將www.sitetwo.com中的表單提交到www.siteone.com,因此我使用JSONP方法使用Ajax。但是,生成的表單不支持任何腳本。 我的代碼是在這裏:jquery不能以動態生成的形式工作

//script in www.sitetwo.com 
    <script type="text/javascript"> 
    window.onload = function() { 
     "use strict"; 
     function js(n) { 
      var s = document.createElement('script'); 
      s.setAttribute("type", "text/javascript"); 
      s.setAttribute("src", n); 
      document.getElementsByTagName("head")[0].appendChild(s); 
     } 
     js("http://www.siteone.com/script.js"); 
    }; 
    $(document).ready(function(){ 
    $=jQuery.noConflict(); 
    $(".submitbutton").hover(function(){ 
     alert("hai"); 
    } 
    </script> 
    <div id="newform"> 
    </div> 

是動態的DIV ID爲newform呈現形式如下:

<form> 
<input type="text" name="username"> 
<input type="password" name="password"> 
<input type="submit" value="go" class="submitbutton"> 
</form> 

我試圖懸停應用的基本腳本alert.But它不是加工。我們不能直接使用這樣的腳本來動態生成表單。如果是的話,我們如何克服這個問題。我在瀏覽器中搜索錯誤。沒有顯示錯誤。什麼可以解決?

回答

1
$(".submitbutton").hover(function(){ 
     alert("hai"); 
    } 

變化

$(".submitbutton").on("hover",function(){ 
     alert("hai"); 
    } 

參考hover

2

你是動態生成的形式,一些事件適用於您必須使用.on()動態元素,其他的事情是事件更改爲mouseentermouseleave代替hover

試試這個:

$(document).on('mouseenter', '.submitbutton', function(){ 
    alert("hai"); 
} 
2

在這種情況下,你不能使用懸停,需要使用事件mouseentermouseleave

.hover()不是一個事件使用委託的事件處理程序,它是一個輔助方法來註冊的mouseenter和鼠標離開事件處理程序

將兩個處理程序綁定到匹配的元素,在 鼠標指針進入和離開元素時執行。

$(document).on('mouseenter', '.submitbutton', function(){ 
    alert("hai"); 
}