我在HTML表单上有一个简单的Listbox和这个非常基本的jQuery代码
//Toggle visibility of selected item
$("#selCategory").change(function() {
$(".prashQs").addClass("hide");
var cat = $("#selCategory :selected").attr("id");
cat = cat.substr(1);
$("#d" + cat).removeClass("hide");
});
Run Code Online (Sandbox Code Playgroud)
当使用鼠标选择当前项目时,更改事件会激活,但是当我使用键盘滚动项目时,事件不会被触发,我的代码永远不会执行.
这种行为有原因吗?什么是解决方法?
如何捕获围绕iframe的div上的click或mousedown事件.我已经尝试将函数附加到div上的click事件,但由于iframe从未将事件冒泡到周围的div,因此函数永远不会被调用.有没有办法可以在div上捕获事件,然后将其传播到iframe以进行默认操作
我基本上在我的UpdatePanel中有一个文字,它根据我的代码隐藏中的方法生成一个javascript数组.
在页面加载时加载我的内容时没有问题.但是,如果我尝试在我的updatepanel中执行搜索更新我的javascript数组文字,我发现在javascript已经触发后,文字会在回发时更新.
这是我所拥有的基本示例:
<script type="text\javascript">
function BindMyFunction(itemList)
{
//Do something
}
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<!-- Literal containing generated JS array -->
<asp:Literal ID="ProfileJavscriptOutput" runat="server"></asp:Literal>
<ul id="person-search">
<li><asp:TextBox ID="TxtFirstname" runat="server" Text=""></asp:TextBox></li>
<!-- Update Literal onClick -->
<li><asp:ImageButton CssClass="searchbtn" ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" /></li>
</ul>
<!-- Some jCarousel rendered -->
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
我一直在看以下帖子:
ASP.NET - UpdatePanel和JavaScript
但我似乎无法正确地将它应用于我的代码.
当我不使用UpdatePanel时,它工作正常.但这是一项要求,以便在执行搜索时页面位置不会移动.
了解这一点的最好方法是看看这个小提琴.
注意鼠标滚轮在红色框中的固定内容上的效果如何.我想滚动的可滚动div.
如果小提琴死了 - 基本上我有一个可滚动的div,上面有固定元素.通常,当鼠标滚过可滚动的div时,它当然会滚动.但是如果你超过了固定元素,那么就不会发生滚动.根据您的站点布局,这可能对用户来说是直观的.
jQuery解决方案没问题.
我正在阅读http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mediatorpatternjavascript
我将介体模式理解为某种设置发布和订阅功能的对象.
通常我正在设置已经提供subscribe(),publish()方法的对象.Concrete Objects扩展此基础对象,以便subscribe()和publish()始终注册为原型属性.
据我所知,中介模式用于将发布 - 订阅 - 方法添加到对象.
这种做法有什么好处?提供基础对象的发布和订阅功能,而不是让构建器在构造中设置,这不是更好的做法吗?
或者我理解调解员模式错了吗?
问候
我正在页面中克隆一个textarea,但克隆的元素没有任何主要元素的事件,有没有办法克隆克隆元素中的所有事件?
var dupNode = node.cloneNode(deep);
Run Code Online (Sandbox Code Playgroud) 我在JavaScript开发是绝对新的,我必须执行以下任务:我有2个输入包含表示形式日期2字符串标记2014年1月12日(日/月/年).我使用此输入标记来搜索具有这些日期之间的日期字段的对象.
<input type="hidden" size="9" class="impPrfTot" readonly="readonly"
onchange="cambioDataDa(this.value)"
name="dataDa" id="datada" value="<%=request.getSession().getAttribute("dataDa")%>"
style="font-size: 11px;color: #000000;">
<input type="hidden" size="9" class="impPrfTot" readonly="readonly"
onchange="cambioDataA(this.value); checkData(this.value)"
name="dataA" id="dataa" value="<%=request.getSession().getAttribute("dataA")%>"
style="font-size: 11px;color: #000000;">
<button class="dataDadataAButton" name="submitdataDadataA" onclick="sottomettiFormDataDaA(this)">Cerca</button>
Run Code Online (Sandbox Code Playgroud)
最后我有一个按钮用于使用此JavaScript提交此表单:
function sottomettiFormDataDaA(obj) {
document.getElementById('dataDaAForm').submit();
}
Run Code Online (Sandbox Code Playgroud)
我需要的是防止里面的值数据A(中英文dateTo)方法的输入是以前的那个dataDa值(以英语dateFrom).
我想做这样的事情:
在更改数据的onchange事件中调用JavaScript 并获取dataA字符串(表示dateTo日期)并检查它是否是dataA的前一个(dateTo日期).
如果前一个检查为true,则日期范围无效,因此脚本显示错误弹出消息并禁止提交具有id ="dataDaAForm"的表单
function checkData(dataA) {
dataDa = document.getElementById('dataDa').value;
if(dataDa > dataA){
// SHOW A POPUP ERROR MESSAGE
// DISALLOW THE FORM SUBMIT
}
} …Run Code Online (Sandbox Code Playgroud)在jQuery中我们使用:
$("p").click(function(){$(this).hide();});
Run Code Online (Sandbox Code Playgroud)
在上面的语句this中非常重要,因为它只隐藏了p我们单击的元素.但是,如果我们"p"在this它的位置使用它将隐藏所有p元素,当我们点击任何一个p元素.
我想知道是否有任何方法可以使用JavaScript生成相同的效果.我试过了:
document.getElementsByTagName("p").onclick = function(){this.style.display:none;}
Run Code Online (Sandbox Code Playgroud)
和
document.getElementsByTagName("p").onclick = function(){document.getElementsByTagName(this).style.display:none;}
Run Code Online (Sandbox Code Playgroud)
但这一切都不起作用.
我正在尝试将事件处理程序附加到链接标记的加载事件,以在加载样式表后执行某些代码.
new_element = document.createElement('link');
new_element.type = 'text/css';
new_element.rel = 'stylesheet';
new_element.href = 'http://domain.tld/file.css';
new_element.addEventListener('load', function() { alert('foo'); }, false);
document.getElementsByTagName('head')[0].appendChild(new_element)
Run Code Online (Sandbox Code Playgroud)
我也试过onreadystatechange
new_element.onreadystatechange = function() { alert('foo'); }
Run Code Online (Sandbox Code Playgroud)
不幸的是,这两种方法都没有导致触发警报.此外,在使用addEventListener注册'load'事件的处理程序后,new_element.onload为null.这是正常的吗?
谢谢,安德鲁
ps:我可能不会使用任何框架来解决这个问题
我在IE9中收到以下错误:
"对象不支持此操作".
关于这个有各种各样的问题,但我的具体是针对以下代码:
var myEvent = new CustomEvent("additem");
Run Code Online (Sandbox Code Playgroud)
根据我的理解,IE9支持CustomEvent作为DOM操作命令.这在Chrome中运行正常,没有任何异常.
任何人都有这个问题,知道如何解决它?谢谢.
javascript ×9
jquery ×4
ajax ×1
asp.net ×1
clonenode ×1
custom-event ×1
dom ×1
html ×1
mediator ×1
mousewheel ×1
updatepanel ×1