Javascript/jquery在其他文件中不起作用
Javascript / jquery not working in other files
我有这个ajax电子邮件订阅功能,它在一个只有一个表单和一个电子邮件输入字段的独立html文件中非常有效,但当我试图将它嵌入其他网站的homapage(具有其他表单元素和脚本)中时,除了"请等待…"消息之外,它就无法工作。
我相信这与引用有关,我对此概念很差,你能告诉我如何解决吗谢谢
<script type="text/javascript">
$(document).ready(function(){
rclear = $('#s-clear');
rclear.hide();
//rclear.hide();
$('#newsletter-signup').submit(function(){
//check the form is not currently submitting
if($(this).data('formstatus') !== 'submitting'){
//setup variables
var form = $(this),
formData = form.serialize(),
formUrl = form.attr('action'),
formMethod = form.attr('method'),
responseMsg = $('#signup-response');
//add status data to form
form.data('formstatus','submitting');
//show response message - waiting
rclear.hide();
responseMsg.hide()
.addClass('response-waiting')
.text('Please Wait...')
.fadeIn(200);
//send data to server for validation
$.ajax({
url: formUrl,
type: formMethod,
data: formData,
success:function(data){
//setup variables
var responseData = jQuery.parseJSON(data),
klass = '';
//response conditional
switch(responseData.status){
case 'error':
klass = 'response-error';
break;
case 'success':
klass = 'response-success';
break;
}
//show reponse message
responseMsg.fadeOut(200,function(){
$(this).removeClass('response-waiting')
.addClass(klass)
.text(responseData.message)
.fadeIn(200,function(){
//set timeout to hide response message
setTimeout(function(){
responseMsg.fadeOut(200,function(){
$(this).removeClass(klass);
form.data('formstatus','idle');
rclear.show();
});
},3000)
});
});
}
});
}
//prevent form from submitting
return false;
});
});
</script>
<div style="background: #9FCBFF;width: 185px;height: 105px" >
<form id="newsletter-signup" action="?action=signup" method="post">
<div>
<fieldset>
<p id="signup-response"></p>
<p id="s-clear"> </p>
<div> <input type="text" name="email" id="signup-email" /></div>
<div><input type="submit" id="signup-button" value="Subscribe" /></div>
</fieldset>
</div>
</form>
</div>
另一种可能性是jquery冲突。如果您在主页中使用不同的javascript插件(以$作为变量或函数名),而这些插件在独立页面中没有使用,则可能会发生jquery冲突。尝试:
$.noConflict();
jQuery(document).ready(function($) {
// Code that uses jQuery's $ can follow here.
});
您是否检查了控制台中的错误消息?此外,请检查地址框的右上角,以确保页面没有阻止脚本。
相关文章:
- AJAX上传文件不起作用
- 在Hapi.js中提供静态JavaScript文件不起作用
- 从HTML链接时,Javascript文件不起作用
- Haskell调用Node.js文件不起作用
- Expressjs 静态文件不起作用
- 基于屏幕大小的动态包含文件不起作用
- 我的AJAX文件不起作用
- 编辑器导出的json文件不起作用
- 第一次用部分调用 Angular js 文件不起作用
- 使用 API 下载文件不起作用
- Ionic + Cordova InappBrowser - 输入类型=文件不起作用
- 路径 lo 加载本地主机子文件夹中的文件不起作用.js仅在基路径中
- 使用 multer (nodeJs) 上传文件不起作用
- .php和.html文件和外部文件不起作用
- 聚合物项目材料设计下载文件不起作用
- 本地 js 文件不起作用
- 作为触发器的 Jquery 输入类型文件不起作用
- 链接到外部.js文件不起作用
- 复制的文件不起作用 - ID在不同页面HTML JavaScript PHP中不起作用
- 使用触发器“单击”下载附加到 的多个 CSV 文件不起作用