Jquery无法以动态生成的形式工作

时间:2013-08-22 12:44:59

标签: javascript jquery forms cross-domain

我使用从www.sitetwo.com调用的一些脚本在www.siteone.com中生成表单。因为我必须在www.sitetwo.com中向www.siteone.com提交表单,所以我使用JSONP方法使用Ajax。但是,生成的表单不支持任何脚本。 我的代码在这里:

   //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>

我尝试在悬停警报上应用基本脚本。但它无效。我们不能直接使用这样的脚本来动态生成表单。如果是这样,我们如何克服这个问题。我在浏览器中搜索过错误。没有显示错误。什么可以解决?

3 个答案:

答案 0 :(得分:2)

您正在动态生成表单,要将某些事件应用于您必须使用的动态元素.on(),其他方面是将事件更改为mouseentermouseleave而不是{ {1}}

试试这个:

hover

答案 1 :(得分:2)

在这种情况下你不能使用悬停,需要使用事件mouseentermouseleave

使用委托事件处理程序

.hover()不是事件,它是注册mouseenter和mouseleave事件处理程序的辅助方法

  

将两个处理程序绑定到匹配的元素,以便在执行时执行   鼠标指针进入并离开元素。

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

答案 2 :(得分:1)

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

改变

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

参考hover