我们需要在页面加载时加载给定的函数。然后,每次单击给定按钮时,我们都应该重复该函数执行。我们怎么能这样做?
以下是代码:
$(function showMember() {
$.ajax({ //Perform an asynchronous HTTP (Ajax) request.
success: function(html){
$('#members').append(html);
},
type: 'get',
url: '<?php echo $this->createUrl('member'); ?>', //A string containing the URL to which the request is sent.
data: {index:$('#members div>h3').size()},
cache: false, //if false, it will force requested pages not to be cached by the browser.
dataType: 'html' //The type of data that you're expecting back from the server.
});
});
$('.addMember').click(showMember);
showMember
不会触发uppon点击。
任何人都可以详细解释,为什么会这样?
答案 0 :(得分:4)
这是因为你创建的函数的范围有限$(function ..)
....
你可以简单地做到
$(function(){ //document.ready function
showMember(); //call showmember when document is ready
$('.addMember').click(showMember); //call same function when clicked
});
function showMember() {
$.ajax({ //Perform an asynchronous HTTP (Ajax) request.
success: function(html){
$('#members').append(html);
},
type: 'get',
url: '<?php echo $this->createUrl('member'); ?>', //A string containing the URL to which the request is sent.
data: {index:$('#members div>h3').size()},
cache: false, //if false, it will force requested pages not to be cached by the browser.
dataType: 'html' //The type of data that you're expecting back from the server.
});
}
答案 1 :(得分:2)
作为bipen答案的附录:你的代码不起作用的原因是你似乎没有得到$
的内容。
由于您使用jQuery标记了您的问题,我假设您正在使用它。当您在代码中包含jQuery库时,它会为您提供一个名为jQuery
的函数。此函数的别名为$
。也就是说,$
与jQuery
相同。
当您在javascript中调用函数时,您可以传入参数:
parseInt('1234');
在代码的顶部,您调用$
,并将函数定义作为参数传递。所以
$(function showMember()...
与
相同jQuery(function showMember()...
这在语法上是正确的,但是将函数的范围限制为已传递给$
函数的参数列表。该调用完成后,函数showMember
将不再存在。
这就是您的代码不起作用的原因。
答案 2 :(得分:1)
当你在事件处理程序中传递自定义function
(即点击,更改等)时,你需要正常创建函数,你不需要在function
内包裹$();
{1}}
并且不要忘记将代码包装在$(document).ready();
function showMember()
{
$.ajax(
{
success: function(html)
{
$('#members').append(html);
},
type: 'get',
url: '<?php echo $this->createUrl('member'); ?>',
data: {index:$('#members div>h3').size()},
cache: false,
dataType: 'html'
});
}
$(document).ready(function(){
$('.addMember').click(showMember);
});
答案 3 :(得分:1)
以下几点: -
$(function showMember()
。function showMember()
。click
函数。$(document).ready(function () {
$('.addMember').click(showMember);
});
OR
$(function () {
$('.addMember').click(showMember);
});
答案 4 :(得分:0)
使用jQuery时需要使用ready函数
$(document).ready(function(){
$('.addMember').click({});
});
答案 5 :(得分:0)
试试这个:
$('.addMember').click(function(){
showMember();
});
function showMember(){
$.ajax({ //Perform an asynchronous HTTP (Ajax) request.
success: function(html){
$('#members').append(html);
},
type: 'get',
url: '<?php echo $this->createUrl('member'); ?>', //A string containing the URL to which the request is sent.
data: {index:$('#members div>h3').size()},
cache: false, //if false, it will force requested pages not to be cached by the browser.
dataType: 'html' //The type of data that you're expecting back from the server.
});
}
答案 6 :(得分:0)
你可以动态地使用这个lement绑定, 所以我认为你需要在所有绑定完成后绑定它:
$('.addMember').live('click', function(){
showMember(); return false;
});