如何在锚点击时从客户端调用javascript函数

时间:2012-01-19 07:48:19

标签: javascript asp.net client-side

我有javascript函数示例('textValue')并且必须在锚点击时在服务器端调用。我试过下面的代码

string text="xyz";
anchor.Attributes.Add("onclick","javascript:sample('"+text+"');

但文本的值未正确分配。编码的字符串被添加。视图源中的结果类似于

javascript:sample('xyz')

但我需要javascript:sample('xyz')

2 个答案:

答案 0 :(得分:0)

您使用什么服务器/后端语言? PHP?你使用任何框架(Zend,CakePHP ......)?

在JS方面做这样的事情:

选项1

<a href="/a_page" onclick="sample('text');">Test</a>

选项2

<a href="/a_page" id="clicky-clack-link">Test</a>
<script type="text/javascript">
    document.getElementById('clicky-clack-link').onClick = function() {
        sample('test');
    };
</script>

注意:如果还没有,请查看jQuery

答案 1 :(得分:0)

我想知道你是否可以这样做:

string text="xyz";
anchor.Attributes.Add("onclick", function(){ sample(text); } );

它做什么?好吧,onclick处理程序接受一个没有参数的函数,对吧?也就是说,如果有人点击链接,要做什么。如果您是在HTML中手动编写代码,则可以使用javascript:a_statement_goes_here来描述要运行的代码。我希望浏览器只是创建一个功能。由于您是在JavaScript中进行分配,因此您必须自己(除非您写出文档 - 可能有效)并分配函数。但是你还没有这样的函数 - 你有一个sample接受一个参数 - 因此匿名函数关闭了text参数。

这是基于以下假设,即上述实际上是客户端代码。如果JS不允许您为属性分配函数,我会非常惊讶。事实上,我认为你遇到的问题是,JavaScript试图变得非常聪明,并确保分配字符串,将保持字符串 - 这就是你的'被编码的原因。

去吧,告诉我它是怎么回事。的Ta!