Javascript 此代码没有';我好像没按这个按钮。什么';出什么事了?
我正在为一个客户做一些事情,一个代理已经构建了一个小jQuery来启动双击泛光灯标记,但由于某些原因,该标记不起作用:Javascript 此代码没有';我好像没按这个按钮。什么';出什么事了?,javascript,jquery,advertisement-server,Javascript,Jquery,Advertisement Server,我正在为一个客户做一些事情,一个代理已经构建了一个小jQuery来启动双击泛光灯标记,但由于某些原因,该标记不起作用: <script type="text/javascript"> $(function () { //var origOnClick = $('#trackingButton').attr("onclick"); $('#trackingButton').click(fireFloodlight); function fireFloodlig
<script type="text/javascript">
$(function () {
//var origOnClick = $('#trackingButton').attr("onclick");
$('#trackingButton').click(fireFloodlight);
function fireFloodlight() {
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
}
}
});
</script>
如何添加“跟踪”按钮?如果您是通过jQuery执行此操作,请在上使用而不是单击
$('body').on('click','#trackingButton',function(){
console.log("Page_IsValid: "+Page_IsValid);
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
}
});
$('body')。在('click','trackingButton',function()上{
log(“Page\u IsValid:+Page\u IsValid”);
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
}
});
Page_IsValid应该为true,并且应该将您的img添加到DOM中
工作正常吗?您实际上已经为同一事件向同一元素分配了两个事件处理程序。据我所知,这是不可能的 此外,您应该将函数调用封装在匿名函数中,如下所示:
$('#trackingButton').click( function() {
fireFloodlight();
});
您可能希望避免直接在HTML标记中分配事件处理程序,这通常被认为是一种不好的做法
在调用时,请确保您的#trackingButton已存在于DOM中,并尝试将其分配给click事件处理程序
另外,当您尝试分配事件处理程序时,请确保控制台日志中没有错误,并且没有其他插件或脚本正在修改DOM。如果此代码位于HTML文件的
head
标记中,它将无法正常工作。JavaScript将在页面完成呈现之前尝试执行。因此,当代码执行时,根据解析器,input
标记将不存在。您可以将它放在一个文件中,或者只需将脚本
标记放在HTML文档的末尾(在正文
标记的末尾之前)
除此之外,如果您使用的是最新版本的jQuery,那么您将希望使用.On()
而不是.live()
、.delegate()
或。单击()。在最新版本的jQuery中,前两个在技术上已被弃用(尽管我高度怀疑它们是否会在一段时间内被删除),而且,如果我没记错的话,。click()
只是.on()
的包装器,因此仅使用.on()
在技术上更快
我将给出两个如何使用.on()
的示例
第一个示例是在最初加载页面后,简单地将事件添加到#trackingButton
元素
<script type="text/javascript">
$(document).ready(function () {
$('#trackingButton').on('click',function() {
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
}
});
});
</script>
我希望这些例子能有所帮助 您的html节点有一个显式的onclick
属性,根据您的代码,该属性不会被停用
WebForm\u DoPostBackWithOptions
做什么?如果在某些配置中,此函数返回false
,将阻止调用其他处理程序
如果可以对生成html的代码执行操作,我建议从节点中删除此onclick
属性,并将其声明为jquery单击处理程序。尝试以下操作:
//var origOnClick = $('#trackingButton').attr("onclick");
$('#trackingButton').live("click", function(){
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
}
});
//var origOnClick=$('#trackingButton').attr(“onclick”);
$(“#trackingButton”).live(“单击”,函数(){
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
}
});
此代码同时触发onclick
事件和绑定到#trackingButton
选择器的click
事件:
您可以移动onclick
事件来触发函数,而不是将其内联:
<input type="submit" onclick="myPostBack()" name="ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton" value="Get your quick quote" id="trackingButton" class="button" />
注意:我设置了一个警报作为示例,以验证是否执行了myPostBack
功能
如果未执行WebForm\u DoPostBackWithOptions
,请检查是否存在语法错误(使用“
触发js错误),并传递正确的参数…了解更多信息
…js(续)
功能fireFloodlight(){
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
//附加另一个图像以进行验证
$(“正文”)。附加(“”)
}
}
$(函数(){
//使用.on()需要jQuery 1.7+
$(“#trackingButton”)。在(“单击”,函数()上{
消防泛光灯();
});
});
假设Page\u是有效的
是true
,这应该会起作用……例如……如果一切正常,您应该会看到回发警报以及jQuery图像;)您已经准备好了文档上的函数,您的问题是,如果您想调用类似于t的函数,您调用该函数的方式是错误的您应该将其声明为函数表达式():
$(函数(){
var fireFloodlight=函数(){
如果(真){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
警惕(“ello”);
}
}
$(“#跟踪按钮”)。单击(消防泛光灯);
});
正在工作。提交按钮可能正在触发请求,因此您永远无法看到图像被添加到正文中。event.preventDefault()
可能会解决此问题
$('#trackingButton').click(function(event) {
event.preventDefault();
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
}
}
$(“#跟踪按钮”)。单击(函数(事件){
event.preventDefault();
如果(第页有效){
var axel=Math.random()+“”;
var a=axel*100000000000;
$(“正文”)。附加(“”);
//eval(origOnClick);
}
}
那么页面是否有效?您是否开始执行控制台日志的页面是否有效?@adeneo d'oh.不,我不会尝试此操作。谢谢您是否将console.log放在if语句的正上方,并通过单击按钮将其打印到控制台?是否会发生动态加载#trackingButton
元素的情况?@VisioN it's not动态添加,让我也为这个按钮粘贴HTML。它是
<script type="text/javascript">
$(document).ready(function () {
$(document).on('click','#trackingButton',function() {
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
}
});
});
</script>
//var origOnClick = $('#trackingButton').attr("onclick");
$('#trackingButton').live("click", function(){
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
}
});
<input type="submit" onclick="myPostBack()" name="ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton" value="Get your quick quote" id="trackingButton" class="button" />
function myPostBack() {
/*
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ctl00$ctl00$BodyPlaceHolder$BodyPlaceHolder$WizardContentPlaceHolder$WizardCollectBasicSMEInfo$trackingButton", "", true, "Form", "", false, false))
*/
alert("postback executed")
}
function fireFloodlight() {
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
// append another image for verification purposes
$("body").append('<img src="http://www.devaldi.com/wp-content/uploads/2009/10/jquery-logo.gif" alt="jquery" />')
}
}
$(function() {
// using .on() requires jQuery 1.7+
$('#trackingButton').on("click", function() {
fireFloodlight();
});
});
$(function () {
var fireFloodlight = function() {
if (true) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="http://tejedoresdesuenos.com.mx/wp-content/uploads/2011/06/google.jpg" width="50" height="10" alt=""/>');
alert('ello');
}
}
$('#trackingButton').click(fireFloodlight);
});
$('#trackingButton').click(function(event) {
event.preventDefault();
if (Page_IsValid) {
var axel = Math.random() + "";
var a = axel * 10000000000000;
$("body").append('<img src="https://ad.doubleclick.net/activity;src=2499215;type=axa_l124;cat=lpg_g263;ord=' + a + '?" width="1" height="1" alt=""/>');
//eval(origOnClick);
}
}