设置select元素的值时触发更改事件的最简单,最好的方法是什么.
我期望执行以下代码
$('select#some').val(10);
Run Code Online (Sandbox Code Playgroud)
要么
$('select#some').attr('value', 10);
Run Code Online (Sandbox Code Playgroud)
会导致触发更改事件,我认为这是非常合乎逻辑的事情.对?
嗯,事实并非如此.您需要通过执行此操作来触发change()事件
$('select#some').val(10).change();
Run Code Online (Sandbox Code Playgroud)
要么
$('select#some').val(10).trigger('change');
Run Code Online (Sandbox Code Playgroud)
但我正在寻找一些解决方案,一旦某些javascript代码更改了select的值,就会触发更改事件.
是否有可能在元素级别覆盖核心jQuery函数,因此举个例子,我想仅在一个<select>元素上覆盖val()函数.
如果我做这样的事情
var element = $('select');
var old_val = element.val;
element.val = function () {
console.log('The new val');
return old_val.apply(this, arguments);
}
element.val(19);
Run Code Online (Sandbox Code Playgroud)
它按预期工作,但只要我用新的jQuery实例处理相同的字段
var element = $('select');
element.val(19);
Run Code Online (Sandbox Code Playgroud)
它停止工作,因为我们有jQuery对象的新实例.如果我使用$ .fn.val函数,我会改变所有支持val函数的对象的行为,这对我来说有点太多了.
任何帮助将不胜感激.谢谢.
使用'draggable'html5属性时,如何保留拖动的A元素的外观.在某些浏览器(Safari和Chrome)上拖动锚点时,拖动的帮助器将被替换为拖动元素的浏览器本机实现,如屏幕截图所示:
拖动DIV时
拖动A时
HTML
<div class="draggable">Draggable DIV</div>
<a href="" class="draggable">Draggable A</a>
Run Code Online (Sandbox Code Playgroud)
CSS
$('.draggable').attr('draggable', true);
Run Code Online (Sandbox Code Playgroud)
这是我组装的快速JSBin来演示这个问题http://jsbin.com/pihayeceza/1/edit
谢谢
有没有一种方法可以将事件绑定到某个对象,并确保其中一个事件始终最后执行?
$('#something').bind('click', function () {
// do something first
});
$('#something').bind('click', function () {
// do this always last
});
$('#something').bind('click', function () {
// do this after first one
});
Run Code Online (Sandbox Code Playgroud)
谢谢你!
我没有使用allowpopups属性来允许从电子应用程序中的 webview 打开弹出窗口,而是根据案例处理“新窗口”。
这是我的事件处理程序
content.addEventListener('new-window', function (e) {
var url = e.url;
var hostname = (new URL(url)).hostname.toLowerCase();
if (hostname.indexOf('dropbox.com') !== -1 && url.indexOf('chooser') !== -1) {
// this should open window but it doesnt
return true;
} else {
content.loadURL(url);
e.preventDefault();
}
});
Run Code Online (Sandbox Code Playgroud)
如您所见,触发此处理程序的事件是否具有 dropbox 的 url(例如),我希望电子允许按预期打开该窗口。
如果不是这种情况,我应该在电子应用程序中打开该网址。
...但这不起作用,当使用 dropbox url 时,我什么也没得到。关于我做错了什么的任何建议?
谢谢