在外部js文件中引用jQuery事件处理程序

Reference jQuery event handler in external js file

本文关键字:jQuery 事件处理 程序 引用 外部 js 文件      更新时间:2023-09-26

当我在外部文件中使用jQuery中的事件处理程序时,我如何使用它们?

我正在使用Phonegap来构建一个应用程序,为了整洁起见,我想在不同的js文件中保存每个jQuery函数。

但是当我尝试单击事件处理程序绑定的按钮时,什么也没有发生。

事件未触发。

我在加载jQuery后调用js文件,只是想我应该这么说。

外部JS

$("#getname").click(function()
{
        var youruname = localStorage.youruname;
            
        var PostData =
        {
            youruname: youruname,  
        };
        
        $.ajax
        ({
            url: "http://www.yellowcabsavannah.com/tag/tag_logout.php",
            type: "POST",
            data: PostData,
            async: false,
            dataType: 'json',
            cache: false,
            success: function(data)
            {
                //do stuff
            }
        });
    }
});

主文件JS

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript" src="tag.js"></script>
<script type="text/javascript" src="logout.js"></script>
<script src="http://jquery-ui-map.googlecode.com/svn/trunk/ui/min/jquery.ui.map.full.min.js"></script>
<div id="toolbar"><p>Who: <span id="name">Tap To Choose</span> - </p><a href='#' id="tag" class="mapbutton">Tag</a><br /><a href='#' id="logout" class='mapbutton'>Logout</a></div>

尝试绑定live或on

$("#getname").live('click',function(){...})
$(document).on('click',"#getname",function(){...})

你的html没有一个id为getname的元素。我假设你想绑定一个事件与id为name的元素,所以试试这个:

$("#name").click(function() {
    alert("clicked");
});

或者将span id从name更改为getname,因此

<span id="name">Tap To Choose</span>

<span id="getname">Tap To Choose</span>

和事件处理程序$("#getname").click应该工作得很好。