2014-01-24 120 views
1

下面是一个使用jQuery Mobile的我的HTML重定向到PHP页面:无法使用jQuery

<div class="ui-input-btn ui-btn ui-btn-b"> 
    Database Management 
    <input data-enhanced="true" value="Enhanced - Theme swatch B" type="button" id="dbmgmt"></div> 

这是我的脚本:

<script> 
    $('#dbmgmt').click(function(){ 
     window.location.href='dbmgmt.php'; 
    }) 

</script> 

然而,当我点击该按钮,它什么都不做在所有。我的错误是什么?

+2

尝试在DOM准备好处理程序添加脚本'的jQuery(函数(){ $( '#dbmgmt')点击(函数(){ window.location.href = 'dbmgmt.php'; }) })' –

+0

检查您的浏览器控制台以检查是否有任何错误....还要确保只有一个元素带有上述ID –

+0

@ArunPJohny'.ready()'不应该用于在jQM中附加事件。 – Omar

回答

1

首先,确保你已经装载jQuery和jQuery Mobile的使用正确的路径和顺序(包括jQuery的核心第一)

其次,尽量包裹里面DOM准备$(function(){ });代码:

$(function() { 
     $('#dbmgmt').click(function(){ 
      window.location.href='dbmgmt.php'; 
     }) 
    }); 
+0

'.ready()'不应该用于在jQM中附加事件。 – Omar

-1

你可以试试这个

$(function() { 
    $('#dbmgmt').live('click',function(){ 
     window.location.href='dbmgmt.php'; 
    }); 
}); 
+0

有和没有“活” – yvonnezoe

+0

某些时候有什么区别.click()不适合我,但当我使用.live('click',function(){});那么它的工作。 – Bhupendra

0

要对它进行适当&试试这个,

$(document).ready(function(){ 
    $('#dbmgmt').click(function(){ 
     window.location.href='dbmgmt.php'; 
    }); 
}); 
0
<script> 
$('#dbmgmt').on('click',function(){ 
    window.location.href='dbmgmt.php'; 
}); 

</script> 

试试这件 'click' 事件

2

你先对pagecreate事件绑定click需要。然后使用change函数移动到该页面。

避免使用.ready()来绑定jQuery Mobile中的事件,使用页面为jQuery Mobile框架设计的事件。

$(document).on("pagecreate", function() { 
    $('#dbmgmt').on("click", function() { 

    $.mobile.pageContainer.pagecontainer("change", "dbmgmt.php"); 

    }); 
}); 

确保阿贾克斯导航已启用,将此代码放在head标签。

+0

你可以进一步解释避免使用'.ready()'吗? – yvonnezoe

+0

@yvonnezoe jQM使用_Ajax_将页面加载到DOM中。当您使用'.ready()'时,它会触发一次并将事件附加到当前在DOM中的元素。但是,当您使用_Ajax_将新页面/元素加载到DOM中时,它们都不会收到任何事件侦听器。 – Omar

+0

@yvonnezoe它适合你吗? – Omar