Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止标记在URL上重定向_Javascript_Php_Jquery_Yii_Pagination - Fatal编程技术网

Javascript 防止标记在URL上重定向

Javascript 防止标记在URL上重定向,javascript,php,jquery,yii,pagination,Javascript,Php,Jquery,Yii,Pagination,我被困在一个非常普通的监狱里。我有YII CLINK PAGER分页小部件生成的HTML代码: <ul class="yiiPager" id="yw0"> <li class="first hidden"><a href="/advisory_system/administrator/index.php/specialCategory/gridview?optget_grid=&amp;analysis_type=4&amp;_=141

我被困在一个非常普通的监狱里。我有YII CLINK PAGER分页小部件生成的HTML代码:

<ul class="yiiPager" id="yw0">
      <li class="first hidden"><a href="/advisory_system/administrator/index.php/specialCategory/gridview?optget_grid=&amp;analysis_type=4&amp;_=1410520989427">&lt;&lt; First</a></li>
      <li class="previous hidden"><a href="/advisory_system/administrator/index.php/specialCategory/gridview?optget_grid=&amp;analysis_type=4&amp;_=1410520989427">&lt; Previous</a></li>
      <li class="page selected"><a href="/advisory_system/administrator/index.php/specialCategory/gridview?optget_grid=&amp;analysis_type=4&amp;_=1410520989427">1</a></li>
      <li class="page"><a href="/advisory_system/administrator/index.php/specialCategory/gridview?optget_grid=&amp;analysis_type=4&amp;_=1410520989427&amp;page=2">2</a></li>
 </ul>
但通过单击任何
标记,它将重定向到href中给出的链接,以防止我使用
e.preventDefault()但它仍然没有出现在JQuery代码中,并且没有显示警报


请帮忙。提前感谢。

因为您的定位标记是动态创建的。您需要使用事件委派。因为元素应该在事件绑定时出现在dom上。在事件委派的情况下,事件绑定到dom上显示的
文档或父元素

$(document).on('click', "ul.yiiPager li.page a", function(e) {
    e.preventDefault();
    alert($(this).attr('href'));
    loadlistData($(this).attr('href'));
});

因为锚定标记是动态创建的。您需要使用事件委派。因为元素应该在事件绑定时出现在dom上。在事件委派的情况下,事件绑定到dom上显示的
文档或父元素

$(document).on('click', "ul.yiiPager li.page a", function(e) {
    e.preventDefault();
    alert($(this).attr('href'));
    loadlistData($(this).attr('href'));
});
案例1(直接):

$(“ul.yiiPager li.page a”)。打开(“单击”,函数(){…}); 我希望ul.yiiPager li.page中的每个ul.yiiPager li.page都能听清楚:当你被点击时,做点什么

案例2(委托):

$(“ul.yiiPager li.page”)。在(“单击”,“a”,function(){…})上; ul.yiiPager li.page当您的任何子元素被单击时,请对它们进行处理

总结

在案例1中,每个跨度都单独给出了说明。如果创建了新的跨距,他们将不会听到指令,也不会响应单击。每个a都对自己的事件直接负责

在案例2中,只有容器得到了指示;它负责通知代表其子元素的单击。捕获事件的工作已被委派。

案例1(直接):

$(“ul.yiiPager li.page a”)。打开(“单击”,函数(){…}); 我希望ul.yiiPager li.page中的每个ul.yiiPager li.page都能听清楚:当你被点击时,做点什么

案例2(委托):

$(“ul.yiiPager li.page”)。在(“单击”,“a”,function(){…})上; ul.yiiPager li.page当您的任何子元素被单击时,请对它们进行处理

总结

在案例1中,每个跨度都单独给出了说明。如果创建了新的跨距,他们将不会听到指令,也不会响应单击。每个a都对自己的事件直接负责


在案例2中,只有容器得到了指示;它负责通知代表其子元素的单击。捕获事件的工作已经委派。

您的锚定标记是动态创建的吗?@AnoopJoshi是的,它是通过YII分页小部件创建的。我用您的示例代码制作了一个JSFIDLE,一切都很顺利,我看到了警报。顺便说一句,输入
返回false在末尾,以便可以执行
loadlistData
。然后让舒尔在创建标签后加载jQuery代码。或者使用下面的Anoops答案(实际上就是这样)。你的锚定标签是动态创建的吗?@AnoopJoshi是的,它是通过YII分页小部件创建的。我用你的示例代码制作了一个JSFIDLE,一切都很好,我看到了警报。顺便说一句,输入
返回false在末尾,以便可以执行
loadlistData
。然后让舒尔在创建标签后加载jQuery代码。或者使用下面的答案(这确实是正确的)。非常感谢:)哦!你说得对。这应该可以解决问题。我没有意识到,链接在哪里生成的动态非常感谢:)哦!你说得对。这应该可以解决问题。我没有意识到链接是动态生成的