Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取jQuery.click()以多次激活_Javascript_Jquery - Fatal编程技术网

Javascript 获取jQuery.click()以多次激活

Javascript 获取jQuery.click()以多次激活,javascript,jquery,Javascript,Jquery,我在一个报价机上工作,当单击它时,它会显示一个随机报价,以及在我的数组中找到的作者。我可以让它显示一次随机报价,但再次单击按钮不会产生任何效果 //变量 /////////////// 变量引号=[ [“引用1”、“作者1”], [“引用2”,“作者2”], [“引用3”,“作者3”], [“引文4”,“作者4”] ]; var randomQuote=quotes[Math.floor(Math.random()*quotes.length)]; //功能 /////////////// 函

我在一个报价机上工作,当单击它时,它会显示一个随机报价,以及在我的数组中找到的作者。我可以让它显示一次随机报价,但再次单击按钮不会产生任何效果

//变量
///////////////
变量引号=[
[“引用1”、“作者1”],
[“引用2”,“作者2”],
[“引用3”,“作者3”],
[“引文4”,“作者4”]
];
var randomQuote=quotes[Math.floor(Math.random()*quotes.length)];
//功能
///////////////
函数quoteGeneration(){
美元(“.quotes”)。替换为(随机报价);
};
//报价按钮
/////////////////
$(“.quote按钮”)。单击(函数(){
引号生成();
});

随机报价生成器

这就是引用的地方

引用作者 新报价
您的问题与单击无关。您的问题是生成一次随机数并读取一次引号

将随机数/引号选择移动到方法内部。此外,您正在替换元素,而不是其中的文本

//变量
///////////////
变量引号=[“引号1”、“作者1”]、[“引号2”、“作者2”]、[“引号3”、“作者3”]、[“引号4”、“作者4”];
//功能
///////////////
函数quoteGeneration(){
var randomQuote=quotes[Math.floor(Math.random()*quotes.length)];
$(“.quotes”).text(随机引用);
};
//报价按钮
/////////////////
$(“.quote按钮”)。单击(函数(){
引号生成();
});

随机报价生成器

这就是引用的地方

引用作者 新报价
有两个主要问题。第一个原因是您在第一次单击时就从DOM中删除了
.quotes
元素。使用
text()
代替
replaceWith()

第二,你的逻辑是有缺陷的,因为你只在加载页面时随机选择一个报价。这应该在单击处理程序中完成。试试这个:

var引号=[
[“引用1”、“作者1”],
[“引用2”,“作者2”],
[“引用3”,“作者3”],
[“引文4”,“作者4”]
];
$(“.quote按钮”)。单击(函数(){
var randomQuote=quotes[Math.floor(Math.random()*quotes.length)];
$(“.quotes”).text(随机引用);
});

随机报价生成器

这就是引用的地方

引用作者 新报价
将变量
randomQuote
移动到函数中,以便每次调用click事件时,它都会获得随机引号,从现在开始
randomQuote
仅在初始加载时设置一次,因此该值不会改变,并使用
html
而不是
replaceWith()

//变量
///////////////
变量引号=[“引号1”、“作者1”]、[“引号2”、“作者2”]、[“引号3”、“作者3”]、[“引号4”、“作者4”];
//功能
///////////////
函数quoteGeneration(){
var randomQuote=quotes[Math.floor(Math.random()*quotes.length)];
$(“.quotes”).html(随机报价);
};
//报价按钮
/////////////////
$(“.quote按钮”)。单击(函数(){
引号生成();
});

随机报价生成器

这就是引用的地方

引用作者 新报价
问题不在于功能,而是每次都用相同的引号替换文本
randomQuote
被设置了一次,而且再也不会被设置,因此更改正在发生,但是因为没有任何更改,所以您不会看到任何事情发生。问题也是函数-单独修复随机选择将产生与
相同的行为。quotes
元素被
replaceWith()
删除
$(".quotes").text(randomQuote);