Javascript JQuery。单击不适用于包含的函数<;a>;标签

Javascript JQuery。单击不适用于包含的函数<;a>;标签,javascript,jquery,html,pagination,Javascript,Jquery,Html,Pagination,我有下面的函数,它应该在我的分页中的一个数字被点击时触发 <script type="text/javascript"> $("div.pagination a").click(function(event) { alert("Click"); event.preventDefault(); var url = $(this).attr("href"); $("input[name='order']").val(

我有下面的函数,它应该在我的分页中的一个数字被点击时触发

<script type="text/javascript">
    $("div.pagination a").click(function(event) {
        alert("Click");
        event.preventDefault();
        var url = $(this).attr("href");
        $("input[name='order']").val(order);
        $("#form_session").attr('action', url).submit();
    });
</script>

$(“div.pagination a”)。单击(函数(事件){
警报(“点击”);
event.preventDefault();
var url=$(this.attr(“href”);
$(“输入[name='order']”)val(订单);
$(“#form#u session”).attr('action',url).submit();
});
分页方式如下所示:

<div class="pagination">
  <ul>
    <li><a href="results.php?page=1&agruments...">1</a></li>
    <li><a href="results.php?page=2&arguments...">2</a></li>
    ...etc
  </ul>
</div>

由于某些原因,该功能从未启动。我甚至放了一个非常明显的警报来确认它听到了咔嗒声,但我甚至没有看到这个

那么,我做错了什么?对我来说,一切似乎都是正确的…

试试:

<script type="text/javascript" language="javascript">
$(document).ready(function () {
    $("div.pagination li a").click(function(event) {
        event.preventDefault();
        alert("Click");
        var url = $(this).attr("href");
        $("input[name='order']").val(order);
        // Where is order coming from?
        $("#form_session").attr('action', url).submit();
    });
});
</script>

$(文档).ready(函数(){
$(“div.pagination li a”)。单击(函数(事件){
event.preventDefault();
警报(“点击”);
var url=$(this.attr(“href”);
$(“输入[name='order']”)val(订单);
//订单从哪里来?
$(“#form#u session”).attr('action',url).submit();
});
});

您错过了选择器中的
a
。确保DOM已就绪
$(document).ready
。订单变量从哪里来?是否定义了订单?

尝试将其包装在
$(文档)中。就绪(函数(){…})如下所示

 $(document).ready(function () {
   $("div.pagination li").click(function(event) {
        alert("Click");
        event.preventDefault();
        var url = $(this).attr("href");
        $("input[name='order']").val(order);
        $("#form_session").attr('action', url).submit();
    });

 });
如果动态生成
li
,则应使用
.on
(对于jQuery 1.7)或
.live/.delegate
(较旧的jQuery)


注意:替换
$(文档)。在('click','div.pagination li',函数(event){
上使用
$('div.pagination')。在('click','li',函数(event){
上,如果
div.pagination
已加载。

将其放入
文档中。就绪

$(function(){ 
    $("div.pagination a").click(function(event) {
            alert("Click");
            event.preventDefault();
            var url = $(this).attr("href");
            $("input[name='order']").val(order);
            $("#form_session").attr('action', url).submit();
       });
}); 

仍然不工作:/I我还尝试在选择器中执行“div.pagination a”…不走运。@Jon Yeah您正在引用变量
order
这里:
$(“输入[name='order'])。val(order)
。这是从哪里来的?div.pagination ul li或div.pagination ul li a如何?我很确定您不能跳过ul。这是可行的,但现在链接不起作用…它不会将我发送到下一页。然后删除
event.preventDefault()
。很可能在代码运行时DOM还没有准备好。请将其放入准备好DOM的事件处理程序中。在哪里生成?是的,
  • dynamically@Jon更新为.on。当我说动态时,它意味着
    li
    被插入
    ui
    ,或者整个
    ul
    是在运行时使用javascript生成的。明白了他正在启动功能,谢谢!
    $(function(){ 
        $("div.pagination a").click(function(event) {
                alert("Click");
                event.preventDefault();
                var url = $(this).attr("href");
                $("input[name='order']").val(order);
                $("#form_session").attr('action', url).submit();
           });
    });