0

我有一个正常的 js 脚本,它从我的项目开始就一直在工作。但是现在由于某种原因,当我单击按钮时,根本没有任何反应,单击事件没有响应(注意这曾经有效)并且控制台日志中没有显示任何内容,说明是否存在某种错误......脚本只是没反应……

这是HTML:

<script type="text/javascript"  src="js/myscript.js"></script>

<form>
   <input type="text" name="signinemail" id="signinemail" placeholder="Enter Email">
   <input type="password" name="signinpassword" id="signinpassword" placeholder="Enter Password">
   <input type="submit" id ="siginsubmit" name="siginsubmit" value="Sign In">
</form>

这是我的javascript:

$(document).on('pageinit',"#sellbookpage",
    function()
    {
        $("#siginsubmit").click
            (
                function()
                {
                   alert("hello");
                }   
            );
    }
);

注意我正在使用 jQuery Mobile

4

4 回答 4

1

我的问题的获胜答案与上述任何帖子无关!导致问题的原因是我使用的是 jQuery mobile、jQuery 和 Twitter Bootstrap。一旦我注释掉引导 css 的链接,一切就开始像以前一样工作。因此,Twitters Bootstrap 与 jQuery 或 jQuery Mobile 之间肯定存在冲突。

于 2013-05-29T23:20:46.877 回答
1

pageinit事件仅在您使用 jQuery Mobile 时可用。你还在用那个吗?否则你应该使用$(document).ready( ... ).

于 2013-05-29T20:49:08.730 回答
0

http://api.jquery.com/on/#on-events-selector-data-handlereventObject

当提供选择器时,事件处理程序被称为委托。当事件直接发生在绑定元素上时,不会调用处理程序,而只会调用与选择器匹配的后代(内部元素)。jQuery 将事件从事件目标冒泡到附加处理程序的元素(即,从最里面到最外面的元素),并为沿着该路径匹配选择器的任何元素运行处理程序。

siginsubmit是一个input(不能包含后代元素,更不用说带有id="sellbookpage"的后代元素),因此选择器字符串不匹配任何内容,并且单击事件永远不会到达siginsubmit输入。

将其更改为:

$(document).on('pageinit', function () {
    $('#siginsubmit').click(function (e) {
        alert('hello');
        e.preventDefault();
        return false;
    });
});

工作小提琴:http: //jsfiddle.net/VG3Eg/

于 2013-05-29T21:26:24.637 回答
0

你试过使用live()

$("#sellbookpage").live('pageinit', function() {
            $("#siginsubmit").click(function(){
                 alert("hello");
            });
});
于 2013-05-29T20:53:17.463 回答