jQuery:从usercontrol捕获click事件

时间:2012-08-08 13:20:31

标签: javascript jquery asp.net asp.net-mvc

我有按钮的UserControl。我正在尝试使用jQuery捕获此按钮的单击事件。 我在ascx中的代码:

<link type="text/css" href="css/jquery-ui-1.8.22.custom.css" rel="stylesheet" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.22.custom.min.js"></script>
<script type="text/javascript" src="js/myjQueryCode.js"></script>

<button id="test-button">Test</button>

myjQueryCode.js中的代码。

我试过这个:

$('#test-button').bind('click', function() {
    alert("123");
});

和此:

$("[id$=test-button]")
    .button()
    .click(function() {
        alert("123");
});

和此:

$('#test-button')
    .button()
    .click(function() {
        alert("123");
});

什么都不起作用。

5 个答案:

答案 0 :(得分:2)

您是否尝试将代码放入$(document).ready()内? 试试这个:

$(document).ready(function(){

    $('#test-button').bind('click', function() {
        alert("123");
    });

});

答案 1 :(得分:1)

应该是:

$('#test-button').click(function () {
    console.log('Click activated.');
});

确保代码可以实际执行。例如,将语句包装在执行的函数中,如下所示:

(function () {
    // Write code here
}());

或者在文档准备就绪后执行,如下所示:

$(document).ready(function () {
    // Write code here
});

答案 2 :(得分:0)

尝试将您的脚本代码放在html代码之后 - 也许这会有所帮助......

答案 3 :(得分:0)

您的jQuery代码在元素存在之前执行(因为<script>标记位于按钮的HTML之前),因此您需要将其包装在DOM ready事件处理程序中。像这样:

$(document).ready(function() {
    $('#test-button').bind('click', function() {
        alert("123");
    });
});

有关详细信息,请查看.ready()函数和Getting Started with jQuery教程的API文档。

答案 4 :(得分:0)

使用jQuery的第一种方法,而不是引用.button()在jsfiddle中工作:http://jsfiddle.net/Cd5Qj/

因此,您可能在脚本标记中找到了错误的jQuery库路径,或者您没有将代码包含在jQuery块中,如:

$(function(){
  ... //code here
});

...或者我们无法检查一些冲突,因为这里没有显示更多代码。