是否可以在变量启动或每个操作时将变量传递给jquery?

时间:2012-07-24 00:43:13

标签: javascript jquery

我是jquery的新手,只是在它的表面上很棒,如果这是一个非常基本的问题我很遗憾,但我的网站上有一个按钮,一旦点击就会将一些数据发布到我的服务器上,我想知道如何提供jquery我想要发布的数据。我已经制作了jquery无刷新表单,但是他们要求用户输入我发布的内容,但现在我想发送一些未在网页上输入或提供的数据。

在我的网站上,如果您想“关注”某个主题,我会点击一下按钮。如果您按照主题我需要将topic_id和您的用户ID发送到我的服务器以启动该过程,但我认为将此放在我的网页上以便捕获jquery会让用户感到困惑(如果我无法传递我计划的变量)做这种方法,但隐藏字段)。 userid / topicid可用于我的模板引擎,但我不确定如何将数据传递给脚本。

以下是我的脚本示例 HTML:

<input type='button' value='Follow' id='btnFollow'>

follow.js:

$(document).ready(function () {
    $('#btnFollow').click(function() {
        //$("#btnFollow").prop('value', 'Following');
        if ($(this).val() == 'Follow') {
            $("#btnFollow").prop('value', 'Following')      
        } else if ($(this).val() == 'Following') {
            $("#btnFollow").prop('value', 'Follow') 
            $.ajax({
                type: 'POST',
                url: '/follow_modification',
                async: true,
                data: {
                    fe1: "test"
                },
                complete: function(xmlRequestObject, successString){
                    ymmReceiveAjaxResponse(xmlRequestObject, successString);
                }
            });
        }
    })
});

如何从html获取函数信息?到目前为止,我的所有javascripts都是由点击触发,然后从页面中获取数据..如果我的模板中有一个名为{{user_id}}的变量,我该如何将其传递给脚本,以便当点击触发一个动作然后它会有需要发布的数据吗?

3 个答案:

答案 0 :(得分:4)

<input type="button" value="Follow" id="btnFollow" data-topic="topicid" />

$('#btnFollow').click(function() {
    var topic_id = $(this).attr('data-topic');
    alert(topic_id);
});

答案 1 :(得分:3)

<input type='button' value='Follow {{user-id}}' id='btnFollow' data-user="{{user-id}}">

在html端,

$(document).ready(function () {
$('#btnFollow').click(function() {
    var following = $(this).attr("data-user");
    if ($(this).val() == 'Follow') {
        $("#btnFollow").prop('value', 'Following')      
    } else if ($(this).val() == 'Following') {
        $("#btnFollow").prop('value', 'Follow') 
        $.ajax({
            type: 'POST',
            url: '/follow_modification',
            async: true,
            data: {
                fe1: following
            },
            complete: function(xmlRequestObject, successString){
                ymmReceiveAjaxResponse(xmlRequestObject, successString);
            }
        });
    }
})
});

在js方面。

答案 2 :(得分:0)

$(document).ready((function ( data ) {
    // do some thing with somevalue
})( somevalue ));

$(document).ready(function (  ) {
    var data = $('someSelector').val()
    // do some thing with somevalue
});

var data = 'some value';
$(document).ready(function (  ) {
    // do some thing with somevalue
});